-1

大批:

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

例如,我如何返回 name='sam' 的值?

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

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']
                 )
     );
4

4 回答 4

1
$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'];
        }
    }
}
于 2013-02-14T13:31:48.550 回答
1

你需要一个递归 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);
于 2013-02-14T13:58:46.197 回答
0
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'];
       }          
   }
}
于 2013-02-14T13:34:45.837 回答
-1
$new_array = array();
foreach ($old_array as $value) {
    $new_array[$value['name']] = $value['value'];
}

var_dump($new_array['kevin']); // prints 10
于 2013-02-14T13:30:25.357 回答