2010-05-06 2 views
0

나는 다음과 같은 코드를 가지고이 출력 생성PHP의 foreach 질문

$oldID=-1; 
$column=0; 
foreach($pv->rawData as $data) { 
    if ($oldID!= $data->relativeTypeID) { 
     $oldID= $data->relativeTypeID; 
     $column++; 
     $row=1; 
    } 

    echo "Row: ".$row.": Column: ".$column.": ID".$data->relativeTypeID."<br>"; 

    // if exists a description 
    if($data->description) { 
     //insert here in the array 
     $pv->results[$data->relativeTypeID][$row][0]= $data->relation; 
     $pv->results[$data->relativeTypeID][$row][1]= ''; 
     $pv->results[$data->relativeTypeID][$row][2] =''; 
     $pv->results[$data->relativeTypeID][$row][3] = ''; 
     $row++; 
    } 
} 

:

행 : 1 : 칼럼 : 1 : ID1
행 : 2 : 칼럼 : 1 : ID1
를 행 1 : 칼럼 : 2 : ID2
행 : 2 : 칼럼 : 2 : ID2
행 3 : 칼럼 : 2 : ID2
행 : 4 : 칼럼 : 2 : 012 ID2 3, 행 : 5 : 칼럼 : 2 : ID2
행 6 : 칼럼 : 2 : ID2
행 7 : 칼럼 : 2 : ID2
행 8 : 칼럼 : 2 : ID2
행 9 : 칼럼 : 2 : ID2
행 10 : 칼럼 : 2 : ID2
행 11 : 칼럼 : 2 : ID2
행 1 : 칼럼 : 3 : ID3
행 1 : 칼럼 : 4 : ID4
행 : 1 : 열 : 5 : ID8
행 : 2 : 열 : 5 ID8
행 : 3 : 열 : 5 : ID8
행 1 : 칼럼 : 6 : ID10
행 : 2 : 칼럼 : 6 : ID10
행 3 : 칼럼 : 6 : ID10
행 : 4 : 컬럼 : 6 : ID10
. ..
...

내가 그것을하고 싶은 것은 나는이

행과 같은 출력을 할 수 있도록 상단 4 열에서 중지하는 것입니다

: 1 : 칼럼 : 1 : ID1
행 : 2 : 칼럼 : 1 : ID1
행 1 : 칼럼 : 2 : ID2
행 : 2 : 칼럼 : 2 : ID2
행 3 : 칼럼 : 2 : ID2
행 4 : 컬럼 2 : ID2
행 : 5 : 칼럼 : 2 : ID2
행 6 : 칼럼 : 2 : ID2
행 7 : 칼럼 : 2 : ID2
행 8 : 칼럼 : 2 : ID2
행 : 9 : 열 : 2 : ID2
행 : 10 : 열 : 2 : ID2
행 : 11 : 열 : 2 : ID2
행 : 1 : 칼럼 : 3 : ID3
행 : 1 : 칼럼 : 4 : ID4

당신이 볼 수 있듯이, 그것은 열 4. 당신은 이런 식으로 그것을 할 수

답변

2

에서 멈췄다.

foreach($pv->rawData as $data){ 
    if ($oldID!= $data->relativeTypeID){ 
    $oldID= $data->relativeTypeID; 
    $column++; 
    $row=1; 
    } 
    if ($column >=4) break; // Exit the foreach loop if column is equal to or bigger than 4 
    echo "Row: ".$row.": Column: ".$column.": ID".$data->relativeTypeID." 

나는 단지 내 상태에 편집증을 쓴다. 물론 $ column == 4 일 수도있다. 핵심은 break 문을 사용하여 루프에서 벗어나는 것입니다. 원하는 경우 documentation for break here을 확인하십시오.