2011-12-15 51 views
3

我有兩個數組,我可以從$ result [0]或$ result [1]中獲得。我做了print_r($results[0])print_r($result[1])。他們都給我兩個不同的陣列,我想要的。我在做什麼這個數組和foreach錯誤?

但是,我不能讓我的任何信息,如果我這樣做

foreach($results[0] as $result){ 
    echo $result['data']['id']; 
} 

我希望能夠區分這兩個數組,所以我希望能夠從獲取信息二。

我也在$ results上做了一個json_decode。

如果有人能幫助我,那會很棒!感謝

編輯:

Array 
(
    [nonsense] => Array 
     (
      [more] => information 
      [less] => less stuff 
     ) 


    [data] => Array 
     (
      [0] => Array 
       (
        [id] => some id 
       ) 
      [1] => Array 
       (
        [eh] => some eh 
       ) 
     ) 
) 

Array 
(
    [more stuff] => Array 
     (
      [more] => information 
      [less] => less stuff 
     ) 


    [more data] => Array 
     (
      [0] => Array 
       (
        [freshstuff] => some id 
       ) 
     ) 

) 
+2

我想你可能想顯示你的數組的結果? – Arfeen 2011-12-15 07:38:29

+0

Maby你可以顯示這兩個數組結構? – piotrekkr 2011-12-15 07:38:55

回答

4

在您的例子$result['data']['id']不存在。 id裏面還有另一個數組。

foreach在這種情況下是沒有用的,因爲數據是不統一的’。當您循環訪問$results[0]時,您會在第一次迭代中獲得nonsense密鑰,在第二次迭代中獲得data密鑰。此外,nonsense鍵是一組鍵/值對,而data鍵是鍵/值對的數組陣列。

$results[0]$results[1]似乎統一,但它們包含不同的鍵。

echo $results[0]['data'][0]['id'], "<br>\n"; 
echo $results[0]['data'][1]['eh'], "<br>\n"; 

echo $results[1]['more data'][0]['freshstuff'], "<br>\n"; 

更新

的foreach()沒有按與這種陣列的’噸工作。在這種情況下,array_walk_recurisive()通常是一個不錯的選擇。

<pre> 
<?php 

$results = array(
    array(
    'nonsense' => array(
     'more' => 'information', 
     'less' => 'less stuff' 
    ), 


    'data' => array(
     array('id' => 'some id'), 
     array('eh' => 'some eh') 
    ) 
), 

    array(
    'more stuff' => array(
     'more' => 'information', 
     'less' => 'less stuff' 
    ), 


    'more data' => array(
     array('freshstuff' => 'some id')) 

) 
); 


function test_print($item, $key) 
{ 
    echo "$key: $item\n"; 
} 

array_walk_recursive($results, 'test_print'); 

?> 
</pre> 

顯示

more: information 
less: less stuff 
id: some id 
eh: some eh 
more: information 
less: less stuff 
freshstuff: some id 

根據你的需要,你還可以找到一些有用的其他array functions的。

相關問題