分别获取多维数组中的项目

时间:2014-12-02 03:32:36

标签: php arrays

我有一个这样的数组($ 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警告:"为第29行的foreach()提供的参数无效
  2. This line is: foreach($value as $result) {

    1. 我想获取ID和NAME的密钥,以便将它们放在正确的位置。这种方式回应" 1ABC"和" 2DEF"
    2. 有什么想法吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:4)

基本上,触发了错误,因为示例中的数组(特别是索引为零)不是在foreach中使用的数组(很可能是空字符串/ null)。

由于其中一个元素不是数组,您可以使用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;
    }
}

答案 1 :(得分:0)

试试这个,

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

第一个位置为空,因此省略第一个位置