PHP,如何判断一个array的key是自己填的还是自动生成的?
迷茫
迷茫 2017-04-10 17:08:19
[PHP讨论组]

我想区分开不同的array分别处理,区分靠key的值是(通过array_push)自动生成的index还是自己填的(string之类的)index

甚至是混合的key

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(4)
阿神

仔细想了下,题主的意思应该是想要区分数字数组还是索引数组吧?毕竟自动生成的key也是可以手动自己填出来的。

我常用的判断是否为纯数字数组(相当于其他语言的数组)的方法

function is_list($arr){
    return is_array($arr) && ($arr == array() || array_keys($arr) === range(0,count($arr)-1) );
}
大家讲道理

判断key的类型,array_push的key是int

ringa_lee

真要查起来特别麻烦,判断key类型没用,毕竟自己也可以填int类型的key呀。
如果楼主真有这个需求,需要在项目初期就设定好,我举一个简单点的例子:
使用某个函数为数组填key,在填key的同时,做个记录,然后...在你有这个需求的时候就可以查记录了。
不知道其他人有没有更好的方法了,我目前就想到了这个。

高洛峰

array 的key 如果是自动生成的话 那么key 必须的int 数值类型的,不过认为也能设置key 为 int 数值类型
所以没法判断人为设定还是自动生成

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号