我想使用一个数组来确定是否需要显示相册,而不是单个图像。从逻辑上讲,我是如何做到这一点的:
1) 从表格矩中选择所有单个图像(行)(它们被称为矩)
2) 如果图像在alb_id列中没有设置值,则正常显示
3) 如果图像具有alb_id值,则查看它是否已存储在阵列中以跟踪alb_id。
4) 如果它在阵列中,则跳过该行,或者显示相册,并将该alb_id从图像添加到阵列中,这样就不会显示任何具有该alb_id的未来图像。
这是我正在尝试的。尽管这看起来不对。它也不起作用。
$connect= mysqli_connect('localhost', 'root', '', 'thesocialnetwork')
or die('error connecting');
$query= "SELECT * FROM moments WHERE user_id= '".$user_id."' ORDER BY
order_date DESC";
$result= mysqli_query($connect, $query);
$list= array($album);
while ($row= mysqli_fetch_array($result)) {
if (!empty($row[alb_id'])) {
if (!in_array($row['alb_id'], $list)) {
$album.= $row['alb_id'];
display a new album;
}
else {
continue;
}
}
else {
just display the single image;
}
所以,我想我的问题是,我的逻辑正确吗?另外,创建新数组、针对该数组进行测试以及添加到该数组的最佳方法是什么?我的意思是,关于我想做什么?
感谢
如果您想测试数组中的成员身份,最好使用关联数组,并将检查的内容用作键。所以逻辑应该是:
$list = array();
while ($row = mysqli_fetch_array($result)) {
$alb = $row['alb_id'];
if (!empty($alb)) {
if (!isset($list[$alb]) {
$list[$alb] = true;
// display a new album
} else {
continue;
}
} else {
// display the single image
}
}