在php while while循环中打印相同的行
问题描述:
我有三个colums,其中两行的值相同。我想使用php while循环语句只打印两行中同一行中的一行。这是该数据是如何在php while while循环中打印相同的行
ID values
1 MINI
1 MINI
2 MINI
我想打印所有这些,但只有一次与基于ID相同的行
ID Values
1 MINI
2 MINI
我居然可以使用DISTINCT或GROUP BY在MySQL查询找到上面的预期答案,但我真的需要使用一个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;
}
}
}
我手中这就是我在想的手,但它似乎并没有按预期工作,我需要它的帮助。非常感谢哟。
答
当我做这样的事情时,我使用“以前的ID”变量,在这种情况下,$ PRID来检查ID是否重复。 SQL查询必须通过ID进行排序才能完成此工作。
$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'
// )
//)