如何搜索php数组并在匹配时获取相应的键值

时间:2019-04-02 11:41:15

标签: arrays associative

如果我的键和值匹配,我需要在php中搜索多维数组并返回另一个键的对应值

$my_array = array(    
    0 =>  array(  
        "name"   => "john",  
        "id"    =>  4  
    ),  
    1   =>  array(  
        "name" =>  "mark",  
        "id" => 152  
    ), 
    2   =>  array(  
        "name" =>  "Eduard",  
        "id" => 152  
    )
);

if (array_search(152, array_column($my_array, 'id')) !== FALSE){
  I want the corresponding key and value here
i.e name="mark" in this case
}

2 个答案:

答案 0 :(得分:0)

一种有趣的方式是通过使用array_unique的SORT_REGULAR选项先删除重复项,然后可以使用此不重复项列表从阵列中删除,仅保留重复项。

print_r(array_unique($ array,SORT_REGULAR));

答案 1 :(得分:0)

您可以使用foreach循环轻松遍历多维数组,并将每个数组的id值与这样的值进行比较。

<?php
$array = array(
    0 =>  array(  
        "name"   => "john",  
        "id"     =>  4  
    ),  
    1   =>  array(  
        "name" =>  "mark",  
        "id" => 152  
    ), 
    2   =>  array(  
        "name" =>  "Eduard",  
        "id" => 152 
    )
);

foreach($array as $arr){
    if($arr['id'] === 152){
        echo $arr['name'];
        break;
    }
}
?>