繁体   English   中英

带键值的PHP数组搜索

[英]PHP Array Search with key values

我有以下数组:

<?php 
$a=array(
    "abc"=>array("red","white","orange"),
    "def"=>array("green","vilot","yellow"),
    "xyz"=>array("blue","dark","pure")
); 

echo array_search(array("dark"),$a);

?>

如何在数组列表中获取xyz的输出。

array_search返回false或键。 由于您有多个维度,因此您必须遍历以获得最低级别。

由于我们处于另一个维度,您的回报实际上将为1 因此,如果array_search成功,则必须使用foreach中定义的键

<?php
$a=array("abc"=>array("red","white","orange"),"def"=>array("green","vilot","yellow"),"xyz"=>array("blue","dark","pure")); 
foreach($a as $key=>$data){
    if(array_search("dark",$data)){
        echo $key;

    }    

}

输出:xyz

您可以创建一个用户定义函数来检查值

 $a=array("abc"=>array("red","white","orange"),"def"=>array("green","vilot","yellow"),"xyz"=>array("blue","dark","pure")); 
 function search_data($value, $array) {
   foreach ($array as $key => $val) {
       if(is_array($val) && in_array($value,$val))
       {
           return $key;
       }
   }
   return null;
}
echo search_data("dark",$a);

DEMO

请尝试这个

function searchMultiArray($arrayVal,$val){
    foreach($arrayVal as $key => $suba){

        if (in_array($val, $suba)) {
         return $key;
     }

 }
}

$a = array("abc"=>array("red","white","orange"),"def"=>array("green","vilot","yellow"),"xyz"=>array("blue","dark","pure"));
echo $keyVal = searchMultiArray($a , "dark");

暂无
暂无

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

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