我对整个编程内容都很陌生。我需要从 mysql 数据库中回显出缺少的任何整数(按时间顺序(。所以这个 $row["语句"] 的整数从 114 开始到 44714。此列表中缺少数字,我需要知道哪些数字。缺少的第一个数字是 118。所以它变成了 114, 115, 116, 117, 120, ...
我想呼应 118、119 和这个$row["语句"]中缺少的任何其他内容。
我在这里的东西只是打印,直到缺少一个,所以"114 115 116 117"。
<?php
$link = mysqli_connect("localhost", "root", "password", "DB")or die("Error " . mysqli_error($link));
$query = "SELECT statement FROM sales" or die ("Error in the consult.." . mysqli_error($link));
$result = $link->query($query);
$count = 114;
while($row = mysqli_fetch_array($result)) {
while ($row["statement"] == $count) {
echo $count . "<br>";
$count++;
}
}
?>
我想不出如何反其道而行之。如果我设置第二个条件来检查是否!==,这将只打印出整个列表,包括缺失和不丢失。即 114, 115, 116, 117, 118, 119, 120...
这些时间嵌套不好吗?应该做一会儿吗?如果声明?我不明白逻辑。请学习我真正的好。
如果创建一个数组然后比较数组,您可以自己变得容易 -
$count = 114;
$currentNumbers = array();
while($row = mysqli_fetch_array($result)) {
array_push($currentNumbers, $row['statement'];
}
$tempArray = range($count,max($number));
$missingNumbers = array_diff($tempArray,$CurrentNumbers);
foreach($missingNumber AS $value) {
echo $value . '<br />';
}
range()
array_diff()
例
<?php
$link = mysqli_connect("localhost", "root", "password", "DB")or die("Error " . mysqli_error($link));
$query = "SELECT statement FROM sales" or die ("Error in the consult.." . mysqli_error($link));
$result = $link->query($query);
$count = 114;
$max = 44714;
$currentNumbers = array();
$numberOfMissing = 1;
while($row = mysqli_fetch_array($result)) {
array_push($currentNumbers, $row['statement']);
}
$tempArray = range($count, $max);
$missingNumbers = array_diff($tempArray, $currentNumbers);
foreach ($missingNumbers as $value) {
echo $numberOfMissing++ . ". " . $value . "<br>";
}
?>
谢谢周杰伦!