我使用 foreach 循环遍历数组,并将字符串分成两部分。第一部分是分数,第二部分是 ID。就像在本例中一样"34 1",34 是分数,1 是 ID,用空格分隔。然后我将 ID 放入列表中并在 MySQL 查询中使用它。问题在于它根据初始数组中接收结果的方式对结果进行排序。
我想要实现的目标是按每个 id 的分数对其进行排序
在下面的示例中,"34 1","7 2","29 3"它会将其排序为1,2,3. 但我需要它是2,3,1
<?php
$idquestionCollect = ["34 1", "7 2", "29 3"];
foreach ($idquestionCollect as $separateID) {
[$one, $two] = explode(" ", $separateID);
if ($one < 40) {
$listID.= $two . "-";
}
}
$listIDs = '"' . implode('","', explode('-', $listID)) . '"';
$listIDs = rtrim($listIDs, ',');
$query = "SELECT * FROM articles where id in($listIDs)";
$result = mysqli_query($connect, $query);
while ($row = mysqli_fetch_assoc($result)) {
echo $row['Respond'];
}
我在想,也许有一种方法可以在$idquestionCollect将其发送到 foreach 之前实际重新排列,或者也许有一种方法可以在 foreach 内部执行此操作?
拉莫斯之舞
潇潇雨雨