PHP的foreach问题
问题描述:
我有以下代码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: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
行: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列
答
你可以不喜欢这样。
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。