[英]get the index of multi dimension array , with value in php
我想获取没有foreach的数组的索引。 这是样本数组
Array
(
[0] => Array
(
[gcr_distance] => 31.0
[gcr_id] => 23
)
[1] => Array
(
[gcr_distance] => 28.0
[gcr_id] => 22
)
[2] => Array
(
[gcr_distance] => 26.0
[gcr_id] => 20
)
[3] => Array
(
[gcr_distance] => 110.0
[gcr_id] => 21
)
)
假设我的数据是gcr_id = 21 ,通过与上述数组进行比较,它应该给我一个数组 3 的索引
您可以结合使用array_search
和array_column
。 array_column
返回所有具有键'gcr_id'
,然后array_search
返回与值21
对应的键。
$array = array(
array('gcr_distance' => 31.0, 'gcr_id' => 23),
array('gcr_distance' => 28.0, 'gcr_id' => 22),
array('gcr_distance' => 26.0, 'gcr_id' => 20),
array('gcr_distance' => 110.0, 'gcr_id' => 21)
);
$key = array_search(21, array_column($array, 'gcr_id'));
echo $key;
输出:
3
受@Elementary评论的启发,我对此进行了一些基准测试。 我发现,在一个100k条目数组中, array_search
条目array_search
数组中时, array_search
和array_column
花费的时间是基于foreach
的搜索的大约80%,其中95%是在array_column
的调用中。 因此,似乎平均而言,基于foreach
的搜索会更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.