2014-12-02 55 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; 
        } 
    } 
    

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