找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 101|回复: 9

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

[复制链接]

174

主题

364

回帖

1336

积分

金牌会员

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


回复

使用道具 举报

67

主题

1128

回帖

2565

积分

金牌会员

积分
2565
发表于 2018-1-6 13:45:40 | 显示全部楼层
[ol]
  • $keys = array_keys($a);
  • echo $keys[0];
  • echo $keys[count($keys)-1];[/ol]复制代码


  • 回复

    使用道具 举报

    246

    主题

    1345

    回帖

    3542

    积分

    论坛元老

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

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

    总有一款适合你。
    回复

    使用道具 举报

    174

    主题

    364

    回帖

    1336

    积分

    金牌会员

    积分
    1336
     楼主| 发表于 2018-1-6 14:11:54 | 显示全部楼层

    cgs3238 发表于 2018-1-6 13:45

    大牛这写法可行,不知道还有这个函数,节省了好多运算过程啊,重开个贴子,大牛过来领个分
    回复

    使用道具 举报

    174

    主题

    364

    回帖

    1336

    积分

    金牌会员

    积分
    1336
     楼主| 发表于 2018-1-6 13:45:00 | 显示全部楼层

    heibudong 发表于 2018-1-6 13:46

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

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

    这个好像只能输出值,但键名key没法输出
    回复

    使用道具 举报

    217

    主题

    1834

    回帖

    4391

    积分

    论坛元老

    积分
    4391
    发表于 2018-1-6 14:12:56 | 显示全部楼层
    php的函数真的是一堆, 页面搜索下键名.
    [ol]
  • http://www.w3school.com.cn/php/php_ref_array.asp[/ol]复制代码
    [ol]
  • array_search($arr[xxx], $arr);[/ol]复制代码
  • 回复

    使用道具 举报

    174

    主题

    364

    回帖

    1336

    积分

    金牌会员

    积分
    1336
     楼主| 发表于 2018-1-6 13:46:00 | 显示全部楼层

    sora 发表于 2018-1-6 14:16

    php的函数真的是一堆, 页面搜索下键名.

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

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

    又学到几个新函数,重开个贴子,兄弟也过来领个分吧
    回复

    使用道具 举报

    217

    主题

    1834

    回帖

    4391

    积分

    论坛元老

    积分
    4391
    发表于 2018-1-6 14:16:18 | 显示全部楼层

    muyang 发表于 2018-1-6 14:36

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

    ( ...

    php的数组很灵活, 直接用下标[0]就可以了.
    回复

    使用道具 举报

    71

    主题

    1602

    回帖

    3493

    积分

    论坛元老

    积分
    3493
    发表于 2018-1-6 14:36:00 | 显示全部楼层
    for($arr as $key=>$val)
    回复

    使用道具 举报

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2018-1-6 14:16:00 | 显示全部楼层
    array_shift array_pop分别抛出第一个和最后一个,键值反转一下 array_keys array_valuesphp是世界上最好的语言

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-4-26 05:47 , Processed in 0.025297 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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