gpt4 book ai didi

php - 在进行 MySQL 查询之前删除一些数组元素

转载 作者:行者123 更新时间:2023-11-29 03:28:13 25 4
gpt4 key购买 nike

$arr 的值未设置为 NULL 时,以下代码获取所有产品。

$arr 有时还包含需要过滤掉的值。

这意味着,使用 $condition 我想检查数组 $arr 中的“所有”值是否未设置为 NULL但是当您在数组中找到值“apple”、“orange”和“banana”时,请忽略它们。

有没有办法实现我的目标?我还尝试从数组中删除这些元素(第 2 行),但出于某种原因,这对我不起作用。

$arr = $_POST['selected_checkboxes'];
unset($arr["apple"], $arr["orange"], $arr["banana"]); // Trying to remove these keys from the array
var_dump($arr);
$products = array();
$condition = '`' . join('` IS NOT NULL AND `', $arr) . '` IS NOT NULL';
if($result = $db->query("SELECT * FROM produkte WHERE $condition")){
while($row = $result->fetch_object()) {
if (!in_array($row->name, $products)) {
array_push( $products, array('name'=>$row->name, 'image'=>$row->image, 'link'=>$row->link) );
}
}
}
else {
array_push($products, 'error');
}

最佳答案

根据提供的代码,我猜测您混淆了键和值; $arr['apples']只有当你有一个复选框时才会存在 <input ... name="apples"> , 但根据您的 SQL 看来您有 <input ... name="selected_checkboxes" value="apples"> ;在这种情况下,您可能想尝试类似的方法:

<?php
$filter = ['banana', 'orange', 'apple'];
$p = ['papaya', 'mango', 'pear', 'apple', 'grape', 'orange', 'cranberry'];
$arr = array_filter($p, function($v) use($filter) { return !in_array($v, $filter); });
var_dump($arr);

关于php - 在进行 MySQL 查询之前删除一些数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33632576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com