[英]Print same rows as once in php while loop
我有三個列,其中兩個行具有相同的值。 我想使用php while循環語句從兩個相同的行中只打印同一行中的一行。 這就是數據的方式
ID values
1 MINI
1 MINI
2 MINI
我想打印所有這些,但只打印一次基於ID的相同行
ID Values
1 MINI
2 MINI
我實際上可以在mysql查詢中使用DISTINCT OR GROUP BY來查找上面的預期答案,但我真的需要使用php while語句。
這就是我一直在努力的方法
$query="SELECT * from table";
$sR=$db->query($query);
$array=array();
while($sRow=mysqli_fetch_assoc($sR)){
$ID=$searchRow['ID'];
$values=$searchRow['Values'];
$array[$ID][]=$ID;
$array2[$ID][]=$values;
}
foreach($array as $ID => $item){
$value=$array[$ID];
foreach($item as $newItem){
if($newItem===$newItem){
echo '---'.$newItem;
break;
}
}
}
這是我正在嘗試的東西,但它似乎沒有按預期工作,我需要幫助。 非常感謝soo。
當我做這樣的事情時,我使用“Previous ID” - 變量,在這種情況下是$ PRID,來檢查ID是否重復。 必須按ID對SQL查詢進行排序才能使其正常工作。
$query="SELECT * FROM table ORDER BY ID";
$sR=$db->query($query);
$array=array();
$PRID=0;
while($sRow=mysqli_fetch_assoc($sR)){
$ID=$searchRow['ID'];
$values=$searchRow['Values'];
if($ID>$PRID){
$array[$ID][]=$ID;
$array2[$ID][]=$values;
}
$PRID=$ID;
}
foreach($array as $ID => $item){
$value=$array[$ID];
foreach($item as $newItem){
if($newItem===$newItem){
echo '---'.$newItem;
break;
}
}
}
只需嘗試選項1或選項2
$query="SELECT * FROM table ORDER BY ID";
$sR=$db->query($query);
$array = array();
// first option, expected output
// array(
// 0 => 'value',
// 1 => 'value'
// )
foreach($sR as $value) {
$array[$value['ID']] = $value['Values'];
}
var_dump($array);
$array2 = array();
// second option
foreach($sR as $value) {
$array2[$value['ID']] = array(
'ID' => $value['ID'],
'Value' => $value['Value']
);
}
var_dump($array2);
// expected output
// array(
// 0 => array(
// 'ID' => 0,
// 'Value' => 'value'
// ),
// 1 => array(
// 'ID' => 1,
// 'Value' => 'value'
// )
// )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.