返回数组的行,其中key=多维数组中的值



数组:

array(
      ['name'=>'kevin','value'=>'10'],
      ['name'=>'sam','value'=>'20']
     );

例如,在name="am"的情况下,如何返回值?

以及我如何在更深的阵列中做到这一点

array(
      [0]=>array( 'inputs'=>
                    array(['name'=>'kevin','value'=>'10'],['name'=>'sam','value'=>'20']
                 ),
      [1]=>array( 'inputs'=>
                    array(['name'=>'kim','value'=>'10'],['name'=>'kirki','value'=>'20']
                 )
     );

您需要一个递归array_search-上面的所有答案只处理精确的深度(在本例中为2)。

类似的东西

function recursive_array_search($needle,$haystack) {
  foreach ($haystack as $key=>$value) {
    if ($needle===$value OR (is_array($value) && recursive_array_search($needle,$value) !== false)) {
        return $value['value'];
    }
  }
  return false;
}
recursive_array_search('sam', $start_array);
$arr = array(
    array("name"=>"A","info"=>"one"),
    array("name"=>"B","info"=>"two"),
    array("name"=>"C","info"=>"three")
);
foreach($arr as $v){
    if ($v['name']==="A"){
        echo $v['info'];
    }
}

深层

$arr = array(
    array("input"=>array(
        "name"=>"A",
        "info"=>"one"
    )),
    array("input"=>array(
        "name"=>"B",
        "info"=>"Two"
    ))
);
foreach($arr as $subarr){ // First foreach iterate through arrays and next foreach iterate through values of each sub array
    foreach($subarr as $v){
        if ($v['name']==="A"){
            echo $v['info'];
        }
    }
}
for($i=0;$i<count($array);$i++)
{
   if($array['name']=="sam")
   {
      echo $array['value'];
   }
}

对于下一个数组,您可以这样做。。。。

for($i=0;$i<count($array);$i++)
{
   for($j=0;$j<count($array[$i]['inputs']);$j++)
   {
       if($array[$i]['inputs'][$j]['name']=="sam")
       {
          echo $array[$i]['inputs'][$j]['info'];
       }          
   }
}
$new_array = array();
foreach ($old_array as $value) {
    $new_array[$value['name']] = $value['value'];
}
var_dump($new_array['kevin']); // prints 10

相关内容

  • 没有找到相关文章

最新更新