2012-04-17 11 views
0

私は、そのますprint_r私は「結果」列の(印刷キーと値)を処理したいthis-PHPネストされた配列に到達する方法は?

Array 
(
    [keyId] => Array 
     (
      [hostname] => 192.168.1.127 
      [results] => Array 
       (
        [1] => false 
        [2] => false 
        [3] => false 
       ) 

      [sessionIDs] => Array 
       (
        [0] => ed9f79e4-2640-4089-ba0e-79bec15cb25b 
       ) 

     ) 

のように見えるネストされた配列をしました。これはどうすればいいですか?

array_keys関数を使用して最初にすべてのキーを取得しようとしています。キー名が "results"の場合、配列を処理します。しかし問題はarray_keysが "結果"に到達していないということです

答えて

1
foreach($array['keyId']['results'] as $k => $v) { 
    // use $k and $v 
} 
1

これは1つの方法です。

//Assuming, your main array is $array 
foreach($array as $value) { //iterate over each item 

    if(isset($value['results']) && count($value['results'])) { 
    //^check if results is present 

     //Now that we know results exists, lets use foreach loop again to get the values 
     foreach($value['result'] as $k => $v) { 
      //The boolean values are now accessible with $v 
     } 
    } 
} 
+0

、今日SOの何が問題になっているの?ダウンフォースが私に解雇されている。コメントを省く。 – Starx

+0

必ずしも* SO *が間違っているとは限りません。 – Jon

+0

@ジョン、私はSOのユーザーを意味し、私は誰かが私を憎むのは恐れている。 – Starx

3

phpのforeachループが必要です。

foreach($arr['keyId']['results'] as $key => $value) { 
    //$key contains key and $value contains values. 
} 
2

希望する配列は$array['keyID']['results']です。そこから、あなたはそれをループするために$array['keyID']['results'][1]$array['keyID']['results'][2]$array['keyID']['results'][3]

で値にアクセスだけでこの操作を行います。

foreach($array['keyId']['results'] as $key => $value) { 
    echo $key . ' ' . $value; 
} 

または

for ($i = 1; $i <= 3; i++) 
{ 
    echo $i . ' ' . $array['keyID']['results'][i]; 
} 
関連する問題