【问题标题】:PHP Array Search with key values带有键值的 PHP 数组搜索
【发布时间】:2023-04-11 05:29:01
【问题描述】:

我有以下数组:

<?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 的输出。

【问题讨论】:

标签: php


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

     $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

    【讨论】:

      【解决方案3】:

      请试试这个

      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");
      

      【讨论】:

        猜你喜欢
        • 2012-06-02
        • 1970-01-01
        • 1970-01-01
        • 2012-08-22
        • 2017-01-13
        • 2015-03-24
        • 2017-01-19
        • 2019-10-29
        • 1970-01-01
        相关资源
        最近更新 更多