全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1948|回复: 10

php数组,不知道键名怎么输出

[复制链接]
发表于 2018-1-6 13:42:32 | 显示全部楼层 |阅读模式

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的第一条和最后一条,或者还有没有更有效率的写法……


发表于 2018-1-6 13:45:40 | 显示全部楼层
  1. $keys = array_keys($a);

  2. echo $keys[0];
  3. echo $keys[count($keys)-1];
复制代码



发表于 2018-1-6 13:46:51 | 显示全部楼层
指针最后end()  指针第一 reset() 指针下移动 next()

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

总有一款适合你。
 楼主| 发表于 2018-1-6 14:11:54 | 显示全部楼层

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

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

这个好像只能输出值,但键名key没法输出
发表于 2018-1-6 14:16:18 | 显示全部楼层
php的函数真的是一堆, 页面搜索下键名.
  1. http://www.w3school.com.cn/php/php_ref_array.asp
复制代码

  1. array_search($arr[xxx], $arr);
复制代码
 楼主| 发表于 2018-1-6 14:36:00 | 显示全部楼层
sora 发表于 2018-1-6 14:16
php的函数真的是一堆, 页面搜索下键名.

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

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

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

( ...

php的数组很灵活, 直接用下标[0]就可以了.
发表于 2018-1-6 14:53:20 来自手机 | 显示全部楼层
for($arr as $key=>$val)
发表于 2018-1-6 15:51:23 来自手机 | 显示全部楼层
array_shift array_pop分别抛出第一个和最后一个,键值反转一下 array_keys array_values
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-6 06:10 , Processed in 0.078366 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表