Home  >  Q&A  >  body text

php - 如何简便地获取数组的第一个,最后一个元素的键值对?

当前的做法:

# 关联数组
$a = ['a' => 1, ... 'b' => 2];

$first = reset($a);
$first_key = key($a);

$last = end($a);
$last_key = key($b);

有木有简便点的方法呢?

PHP中文网PHP中文网2749 days ago328

reply all(2)I'll reply

  • 怪我咯

    怪我咯2017-04-10 15:44:14

    如果分别获取key和value,题主获取fisrt的方法还可以再简单点:

    $first = reset($a);
    

    如果要一下子把key和value都获取出来,可以用each:

    list($first_key, $first) = (reset($a) ? each($a) : each($a));
    list($last_key, $last) = (end($a) ? each($a) : each($a));
    

    ps: 可惜PHP不支持逗号表达式,要不然可以直接这样写:

    list($first_key, $first) = (reset($a) , each($a));
    list($last_key, $last) = (end($a) , each($a));
    

    补充:list可以嵌套,所以也可以这样写:

    list(,list($first_key, $first)) = array(reset($a) , each($a));
    list(,list($last_key, $last)) = array(end($a) , each($a));
    

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 15:44:14

    phpprint_r(current(array_keys($a)));//a
    print_r(current(array_values($a)));//1
    print_r(end(array_keys($a)));//b
    print_r(end(array_values($a)));//2
    

    reply
    0
  • Cancelreply