簡體   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