使用数组PHP


Using an array PHP

我想使用一个数组来确定是否需要显示相册,而不是单个图像。从逻辑上讲,我是如何做到这一点的:

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