使用&& / AND运算符用于数组

时间:2015-10-28 09:00:34

标签: php arrays loops foreach

此代码检查$value(数组)是否在数据库中设置为1。 foreach循环将所有创建匹配保存到数组$products中。现在我在数据库中的所有字段都具有值1,但这不是我想要的,因为如果字段'dog'等于1而字段'cat'等于{{1}我仍然在我的数组中有'dog'的值。当BOTH等于1时,它只能到达数组。

对于简单变量,您可以使用NULL&&运算符检查所有键是否具有相同的值,但如何使用数组执行此操作?

AND

1 个答案:

答案 0 :(得分:1)

更改SQL语句,使所有选中的值等于1.

您可以为每个值附加" = 1 AND ",然后在查询中使用它们。

<?php
$arr = ['field1', 'field2', 'field3'];
$condition = join(' = 1 AND ', $arr) . ' = 1';

输出为"field1 = 1 AND field2 = 1 AND field3 = 1"。然后,您可以在查询中使用$condition

$db->query("SELECT * FROM produkte WHERE $condition")

更新:

要处理包含空格的字段名,您需要用反引号包装每个字段名,所以更改此行

$condition = '`' . join('` = 1 AND `', $arr) . '` = 1';