我有像这样的php循环foreach的数据
foreach ($query->result() as $row) {
echo $row->name;
}
如果数据相同(如果数据具有相同的值,隐藏除最后一个之外的所有数据),如何使结果仅显示结束数据而不删除其他数据,如下所示:
*对不起英语,这是我第一次问这里。谢谢
答案 0 :(得分:1)
Online Check,这只是一个演示示例。
见下面的真实例子:
首先,您需要使用array_search
获取相同数据的位置(如果存在),然后使用$arr[$pos] = '';
将其删除,并且每次需要将数据导入新数组时调用$arr
并在完成提取数据后,您需要使用foreach循环来打印它们。
$arr = array();
foreach($query->result() as $row){
$pos = array_search($row->name, $arr);
if($pos !== false)
$arr[$pos] = '';
$arr[] = $row->name;
}
foreach($arr as $val){
echo $val.'<br/>';
}
检查一下并告诉我。
答案 1 :(得分:0)
data_seek方法可能有所帮助。这假设你的数组是合理的,可以开始使用。
$rowCount = 0;
$res = $query->result();
foreach($res as $row) {
if ($rowCount < $res->num_rows - 1) {
// set internal pointer to next row
$res->data_seek($rowCount + 1);
// if the row names match, print an empty string
// otherwise print the current name
$nextRow = $res->fetch_row();
if ($row->name == $nextRow->name) {
echo "";
// reset the internal pointer
$res->data_seek($rowCount);
} else {
echo $row->name;
}
} else {
echo $row->name;
}
// update the row count
$rowCount += 1;
}