php foreach soru

1 Cevap php

Ben aşağıdaki kodu var

$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++;
    }
}

İşte bu çıktıyı üretir:

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

Ben böyle bir çıktı istiyorum bu yüzden ne yapmak istediğinizi ilk 4 sütun durdurmak için

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

Gördüğünüz gibi kolon 4 durdu.

1 Cevap

Bunu böyle yapabilirdi.

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

Ben sadece de $ sütun == 4 olabilir benim durum, paranoyak oluyorum. Diyoruz. Anahtar break deyimi kullanarak döngünün kırmaktır. İsterseniz documentation for break here edin.