我想使用数组来确定是否需要显示相册,而不是单个图像。从逻辑上讲,这是我尝试的方式:
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;
}
所以,我想我的问题是,我的逻辑是否正确?另外,创建新数组,对该数组进行测试以及添加到该数组的最佳方法是什么?我的意思是,关于我想做什么?
由于
答案 0 :(得分:0)
如果要测试数组中的成员资格,最好使用关联数组,并将要检查的内容用作键。所以逻辑应该是:
$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
}
}