php foreach question
I have the following code
$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++;
    }
}
That generates this output:
Row: 1: Colum开发者_JS百科n: 1: ID1
Row: 2: Column: 1: ID1 Row: 1: Column: 2: ID2 Row: 2: Column: 2: ID2 Row: 3: Column: 2: ID2 Row: 4: Column: 2: ID2 Row: 5: Column: 2: ID2 Row: 6: Column: 2: ID2 Row: 7: Column: 2: ID2 Row: 8: Column: 2: ID2 Row: 9: Column: 2: ID2 Row: 10: Column: 2: ID2 Row: 11: Column: 2: ID2 Row: 1: Column: 3: ID3 Row: 1: Column: 4: ID4 Row: 1: Column: 5: ID8 Row: 2: Column: 5: ID8 Row: 3: Column: 5: ID8 Row: 1: Column: 6: ID10 Row: 2: Column: 6: ID10 Row: 3: Column: 6: ID10 Row: 4: Column: 6: ID10 ... ...
What I want it to do is to stop at the top 4 columns so I want an output like this
Row: 1: Column: 1: ID1
Row: 2: Column: 1: ID1 Row: 1: Column: 2: ID2 Row: 2: Column: 2: ID2 Row: 3: Column: 2: ID2 Row: 4: Column: 2: ID2 Row: 5: Column: 2: ID2 Row: 6: Column: 2: ID2 Row: 7: Column: 2: ID2 Row: 8: Column: 2: ID2 Row: 9: Column: 2: ID2 Row: 10: Column: 2: ID2 Row: 11: Column: 2: ID2 Row: 1: Column: 3: ID3 Row: 1: Column: 4: ID4
As you can see it stopped at column 4.
You could do it like this.
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."
I'm just being paranoid with my condition, which might as well be $column == 4. Your call. The key is to break out of the loop using the break statement. Check the documentation for break here if you wish.
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论