2015-01-09 3 views
-1

배열과 출력 요소를 반복하면서 실제적인 골치 거리를 겪고 있습니다. 아래의 배열 구조를 사용하여 partname의 각 인스턴스를 출력 할 수 있기를 원합니다.다차원 PHP 배열을 반복하고 출력 값을 배열합니다.

다음 루프는 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

_ "다음 루프는 partname의 첫 번째 인스턴스를 출력합니다."_ 아무 것도 _ 출력하지 않습니다. 단순히 값을 변수에 저장합니다. 그리고 각 루프 반복에서이 값을 덮어 쓰지 않으려면이 시점에 배열에 넣으십시오. – CBroe

답변

-1

사용 루프에 추가 foreach는 대신 단지 키보드 두드림에 의해 코딩의

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

적절한 코딩을 시행해야합니다. 대답에 $ item 같은 $ 변수를 사용하면 도움이되지 않습니다 – Pinoniq

1

. 당신의 기능이 무엇을해야하는지 적어 두십시오. 영어로 (또는 원하는 언어로). 이것은 다음과 같습니다 :

Foreach 지정은 모든 성적을 반복하고 그 등급을 그 배열에 저장합니다.

그리고 다음 코드를 :

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

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

    return $partNames; 
} 

그래서 내가 무슨 짓을 한거야? 나는 단순히 영어로 코드를 번역했다.

몇 가지 추가 팁 : 의미있는 변수 이름을 사용하십시오. $ item; $ ItemArray; ... 이치에 맞지 않는다. 그들은 아무 것도 말하지 않습니다.

+1

하하하! 풍자, 상식 및 코딩 조언이 하나로 통합되었습니다. 더 많이 나는 무엇을 구할 수 있었느냐? 잘 튀긴 닭. 진심으로 감사드립니다. – Mike

관련 문제