tags:

views:

94

answers:

1

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: 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
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.

+2  A: 

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.

Roadmaster