从数组中的数组中获取值

时间:2013-10-17 15:05:28

标签: php arrays multidimensional-array

下面是我的数组$ arr [0]的显示。你能告诉我如何获取内部数组的值吗?

这里我只需要使用ID 656的值'John'。

Array
(
    [0] => xxxxxxxxx
        (
            [Users] => Array
                (
                    [0] => Array
                        (
                            [name] => 656
                            [value] => John

                        )

                    [1] => Array
                        (
                            [name] => 657
                            [value] =>Peter

                        )

                    [2] => Array
                        (
                            [name] => 658
                            [value] => Louie

                        )

                    [3] => Array
                        (
                            [name] => 659
                            [value] => Jim

                        )



                )

        )

提前致谢。

3 个答案:

答案 0 :(得分:1)

尝试运行:

 foreach($arr as $key=>$value){
      var_dump($value);
 }

你可能会从那里找出应该做的事情。希望有帮助吗?

编辑:如果

$arr = array(
       0=>array(
        'Users'=>array(
            0=>array('name'=>656, 'value'=>'John'), 
            1=>array('name'=>656, 'value'=>'John'), 
            2=>array('name'=>658, 'value'=>'Louie')
            )
        )

);

然后你可以使用:

foreach($arr as $Users){
    foreach($Users as $k=>$v){
        var_dump($v[0]['value']);
    }
}

获得'约翰'。这有帮助吗?

答案 1 :(得分:1)

如果这不仅仅是一次性的,您可以使用递归数组搜索功能。如果您的数据是$ arr,则采用您描述的格式:

$arr = array(array("Users"=>array(array("name"=>656,"value"=>"John"),array("name"=>657,"value"=>"Peter"))));

可能看起来像这样:

print in_array_multi("656",$arr);
// ^-- This prints John

print in_array_multi("657",$arr);
// ^-- This prints Peter

function in_array_multi($item, $arr) {
    foreach ($arr as $key => $value) {
        if ($value==$item){
            return $arr['value'];
        } else if (is_array($value)){
            if($ret = in_array_multi($item, $value))
                 return $ret;
        }
    }
    return "";
}

答案 2 :(得分:0)

例如:

我想你有3个阵列到达你想要的地方吗? array_1 [0] .array_2 [0] .array_3 [0] --->在这里您需要的信息。

所以你在array_1的第0位有2个数组。

for(){//to watch the first array all positions 
  for(){//top watch the second array idem
    for(){//to watch the 3 idem...
      here at teh position 0 take away the values... 
    }   
  }
}
希望它有所帮助。