Php 数组与SQL的比较
我希望下面的代码将查询中的SQL信息与数组进行比较,这样即使在SQL中出现两次,也不会重复两次相同的内容 问题是,一件事会得到两次回音。我在每个循环中使用print_r来查看数组如何变化,下面是它如何变化的: 排列 数组[0]=>我的\u预设 数组[0]=>我的预设[1]=>测试预设 PHP代码:Php 数组与SQL的比较,php,Php,我希望下面的代码将查询中的SQL信息与数组进行比较,这样即使在SQL中出现两次,也不会重复两次相同的内容 问题是,一件事会得到两次回音。我在每个循环中使用print_r来查看数组如何变化,下面是它如何变化的: 排列 数组[0]=>我的\u预设 数组[0]=>我的预设[1]=>测试预设 PHP代码: $parentArray = array(); $sql = "SELECT * FROM wb_values"; $result = mysqli_query($conn, $s
$parentArray = array();
$sql = "SELECT * FROM wb_values";
$result = mysqli_query($conn, $sql);
while ($row = $result->fetch_assoc()) {
print_r($parentArray);
if (!in_array($row['parentID'], $parentArray)) {
array_push($parentArray, $row['parentID']);
foreach ($parentArray as $parent) {
$sqlParent = "SELECT * FROM presets WHERE id='$parent'";
$resultParent = mysqli_query($conn, $sqlParent);
while ($row = $resultParent->fetch_assoc()) {
echo "<div class='section'>
<div class='left-mark'></div>
<p class='text'> ".$row['preset_name']." </p>
</div>";
}
}
}
}
问题在于,foreach位于填充数组的循环中,因此每次添加新预设时,都会打印数组中包含的其余预设。只要将foreach放在循环之后,它就可以正常工作:
$parentArray = array();
$sql = "SELECT * FROM wb_values";
$result = mysqli_query($conn, $sql);
while ($row = $result->fetch_assoc()) {
print_r($parentArray);
if (!in_array($row['parentID'], $parentArray)) {
array_push($parentArray, $row['parentID']);
}
}
foreach ($parentArray as $parent) {
$sqlParent = "SELECT * FROM presets WHERE id='$parent'";
$resultParent = mysqli_query($conn, $sqlParent);
while ($row = $resultParent->fetch_assoc()) {
echo "<div class='section'>
<div class='left-mark'></div>
<p class='text'> ".$row['preset_name']." </p>
</div>";
}
}