迭代多维PHP数组和输出值

时间:2015-01-09 11:12:42

标签: php arrays

我真的很头疼试图迭代数组和输出元素。使用下面的数组结构,我希望能够输出partname的每个实例。

以下循环输出partname的第一个实例。我似乎无法使其适应循环遍历数组中的所有实例。我确定我错过了一些基本的东西。

foreach($ItemsArray['assignments'] as $item) { 
    $partname = $item['grades'][0]['partname']; 
    }

Array
(
    [assignments] => Array
        (
            [0] => Array
                (
                    [assigntmentid] => 5101
                    [grades] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 5101
                                    [name] => Advanced AutoCad
                                    [partid] => 6601
                                    [partname] => Draft
                                    [userid] => 82069
                                    [grade] => 53
                                    [courseid] => 6265
                                    [fullname] => Computer Aided Design
                                )

                        )

                )

            [1] => Array
                (
                    [assigntmentid] => 5101
                    [grades] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 5101
                                    [name] => Advanced AutoCad
                                    [partid] => 6602
                                    [partname] => Final
                                    [userid] => 82069
                                    [grade] => 35
                                    [courseid] => 6265
                                    [fullname] => Computer Aided Design
                                )

                        )

                )

        )

)

2 个答案:

答案 0 :(得分:1)

而不仅仅是通过拍打键盘进行编码。写下你的功能需要做什么。英语(或您喜欢的任何语言)。这将是:

  

Foreach分配,遍历所有等级并存储部分名称   等级成阵列。

然后编码:

function getPartnames($assignments) {
  $partNames = array();

  foreach ($assignments as $assignment) {
    foreach($assignment['grades'] as $grade) {
      $partNames[] = $grade['partname'];
    }
  }

  return $partNames;
}

那我该怎么办?我只是将英语翻译成代码。

更多提示:使用有意义的变量名称。 $项目; $ ItemArray; ......没有意义。他们什么也没告诉我

答案 1 :(得分:-1)

在循环中使用额外的foreach:

foreach($ItemsArray['assignments'] as $item) { 
    foreach($item['grades'] as $grade) {
        echo $grade['partname'];
    }
}