如何按数组值顺序获取 MySQLi 数据?

How to fetch MySQLi data order by array values?

我创建了一个数组,用于从MySQL服务器获取数据。

$ids = array(249853, 245549, 249851, 245552, 245551, 249854, 245550, 282445, 261747, 249852, 222398, 248072, 248390, 272473, 219212, 234140, 249815, 241089, 271940, 274940);

$sorted_ids = implode($ids, ",");

使用ID取回的$sorted_ids取数据,但取回的数据是按ID升序排列

$sql = "SELECT ID, number FROM table WHERE ID IN ({$sorted_ids})";
$result = mysqli_query($connection, $sql);

我试过使用 ==,但它只显示与其他记录匹配的索引。

$i = 0;
while($row = mysqli_fetch_assoc($result)) {
    if( $ids[$i] == $row['ID'] ) {
        echo $row['ID']."<br>";

        $i++;
    }
}

如果两个索引都匹配而不是其他记录,则显示记录。

如何按 $ids 数组列表显示记录?

做你想做的最简单的方法是在你的 SQL

中订购它
$sql = "SELECT ID, number FROM table WHERE ID IN ({$sorted_ids}) ORDER BY FIELD(id, {$sorted_ids})";

应该可以解决问题