基于sql查询从数组中删除元素

时间:2015-02-03 21:50:54

标签: php arrays

$_SESSION['lines']从用户粘贴的文本框中填充。在对数据执行任何操作之前,我想通过过滤器运行它以查看它们输入的任何值是否都不在数据库中。

foreach ($_SESSION['lines'] as $q) {
$multiSupplierQuery      = "SELECT distinct supplier from allparts where quotePartNumber = '$q'";
$multiSupplierResult    = mysqli_query($con, $multiSupplierQuery);

while ($row = mysqli_fetch_array($multiSupplierResult)) {
  $multiSupplier = $row['supplier'];
}
 if (!multiSupplier) {
  unset($_SESSION['lines'[]);
 }
}

这个问题的关键在于这个陈述:

 if (!multiSupplier) {
  unset($_SESSION['lines'[]);
}

我想说的是:each time we cycle through this, if multiSupplier doesn't exist, remove this particular element from the array.

unset我的{{1}}语法错误了......我怎么做对了?

2 个答案:

答案 0 :(得分:2)

您可能想在if语句中添加$。变化

if (!multiSupplier) {

if (!$multiSupplier) {  

另外,要从$_SESSION取消设置,您需要一个密钥。尝试更改

foreach ($_SESSION['lines'] as $q) {

foreach ($_SESSION['lines'] as $key=>$q) {

然后

unset($_SESSION['lines'][$key]);

答案 1 :(得分:1)

这不是你的未使用,你只是有一个不必要的开放方括号。

unset($_SESSION['lines'[]);

应该是

unset($_SESSION['lines']);

你会很高兴。