php数组,不知道键名怎么输出 只看楼主


Array
(
    [ab] => 73
    [ue] => 51
    [yk] => 36
    [gh] => 20
    [op] => 12
)


比如遇到上面这种情况,键名是个变量,经常变动,输出时我也不知道它当时是什么

这样的话,是不是就没法输出了?



我需要把第一条,和最后一条的,键名和键值,都输出

我想到的写法感觉太浪费服务器资源,因为上面那个数组的值有1w行,而且有很多个这种数组要处理

我用foreach把上面的数组($a),重新赋值给一个新的数组,在新的数组里改动一下,如:


foreach($a as $a_key => $a_data){

$b[] = $a_key.' '.$a_data;

}


然后输出$b[0],和$b[9999]

如果不用foreach重新赋值,能否直接输出$a的第一条和最后一条,或者还有没有更有效率的写法……


  1. $keys = array_keys($a);

  2. echo $keys[0];
  3. echo $keys[count($keys)-1];



指针最后end()  指针第一 reset() 指针下移动 next()

觉得不爽 那就先来个排序  natsort()

总有一款适合你。

大牛这写法可行,不知道还有这个函数,节省了好多运算过程啊,重开个贴子,大牛过来领个分
引用: heibudong 发表于 2018-1-6 13:46
指针最后end()  指针第一 reset() 指针下移动 next()

觉得不爽 那就先来个排序  natsort()

这个好像只能输出值,但键名key没法输出
  • 6# sora
  • 2018-1-6 14:16:18
php的函数真的是一堆, 页面搜索下键名.
  1. http://www.w3school.com.cn/php/php_ref_array.asp

  1. array_search($arr[xxx], $arr);
引用: sora 发表于 2018-1-6 14:16
php的函数真的是一堆, 页面搜索下键名.

这个 array_search 刚才也想到过,不过这个函数得先确定一个值,而键值和键名,都是变量,都没法指定

(不过好像可以结合3楼兄弟的end()之类的使用,也比我自己的写法简洁很多了……)

又学到几个新函数,重开个贴子,兄弟也过来领个分吧
  • 8# sora
  • 2018-1-6 14:43:05
引用: muyang 发表于 2018-1-6 14:36
这个 array_search 刚才也想到过,不过这个函数得先确定一个值,而键值和键名,都是变量,都没法指定

( ...

php的数组很灵活, 直接用下标[0]就可以了.
for($arr as $key=>$val)
array_shift array_pop分别抛出第一个和最后一个,键值反转一下 array_keys array_values
12下一页