2014-12-02 95 views
3

我有一個這樣的數組($ myArray的):獲取多維數組項目分開

print_r(array_values ($myArray)); 

result: Array ( 
    [0] => 
    [1] => Array ( 
     [id] => 1 
     [name] => ABC 
    ) 
    [2] => Array ( 
     [id] => 2 
     [name] => DEF 
    ) 
) 

我試圖讓每個ID和NAME ..所以我試着這樣:

foreach ($myArray as $value) { 
    foreach($value as $result) { 
     echo $result; 
    } 
} 

我現在面臨兩個問題:

  1. 我得到一個PHP警告說:「爲的foreach提供了無效的參數()上線29

This line is: foreach($value as $result) {

  • 我想拿到鑰匙ID和NAME將它們放置在正確的位置。這種方式回聲 「1ABC」 和 「2DEF」
  • 任何想法?感謝您的幫助。

    回答

    4

    基本上,觸發錯誤,因爲在你的例子(特別是索引零)陣列是未正被內部的foreach使用陣列(最有可能是空字符串/空)。

    由於元件中的一個是不是一個數組,你可以只檢查,如果它的一個陣列或不使用is_array()

    foreach($myArray as $values) { 
        if(is_array($values)) { 
         echo $values['id'] . ' ' . $values['name'] . '<br/>'; 
        } 
    } 
    

    或者,也可以在這種情況下,這反過來又刪除使用array_filter()空指數爲零,這樣您就可以只使用該循環,你有。你不必檢查那個空的元素。

    $myArray = array_filter($myArray); 
    foreach ($myArray as $value) { 
        foreach($value as $result) { 
         echo $result; 
        } 
    } 
    
    +0

    非常感謝您!簡單,我只是無法看到它!再次感謝。 – user3787036 2014-12-02 03:48:12

    +0

    @ user3787036肯定我很高興這有助於 – Ghost 2014-12-02 03:48:39

    0

    試試這個,

    foreach (array_slice($myArray ,1) as $value) { 
        foreach($value as $result) { 
        echo $result; 
        } 
    } 
    

    第一位置被空的,所以省略第一位置