0

我想使用一个数组来确定是否需要显示专辑,而不是单个图像。从逻辑上讲,这是我尝试的方式:

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;
                }

所以,我想我的问题是,我的逻辑是否正确?此外,创建新数组、测试该数组以及添加到该数组的最佳方法是什么?我的意思是,关于我想要做什么?

谢谢

4

1 回答 1

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
  }
}
于 2012-09-06T06:51:20.430 回答