0

以下は、私の配列 $arr[0] の表示です。内部配列の値を取得する方法を教えてください。

ここでは、'John' という ID 656 の値のみを取得する必要があります。

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

                        )



                )

        )

前もって感謝します。

4

3 に答える 3

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

「ジョン」を取得します。それは役に立ちますか?

于 2013-10-17T15:12:31.760 に答える
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 "";
}
于 2013-10-17T15:18:36.443 に答える