繁体   English   中英

获取多维数组的索引,值在php中

[英]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_searcharray_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_searcharray_column花费的时间是基于foreach的搜索的大约80%,其中95%是在array_column的调用中。 因此,似乎平均而言,基于foreach的搜索会更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM