【问题标题】:php array_diff with sql query and $REQUEST [closed]带有 sql 查询和 $REQUEST 的 php array_diff [关闭]
【发布时间】:2023-03-19 10:48:02
【问题描述】:

我想将array_diff 与mysql 查询的结果和$REQUEST 的结果一起使用,这是我尝试过的:

while($resultarray3 = mysql_fetch_array($result3)) 
{
$Bestand = $resultarray3['Bestand']
}
$Ergebnis = array_diff($_REQUEST['Menge'], $Bestand);

我使用它时遇到了这个错误:Warning: array_diff(): Argument #2 is not an array in /var/www/html/lager_management/warenkorb.php on line 143

$Bestand 数组示例:

Array ( [0] => 20 [1] => 250 [2] => 90 ) 

$Menge 数组示例:

Array ([0] => 10 [1] => 45 [3] => 80 )

【问题讨论】:

  • 1) 你为什么不在 SQL 查询开始时这样做,2) 是的,因为 $Bestand 不是数组,它只是数据库中的最后一个值。
  • 您好,请参阅 PHP 手册了解 array_diff() 的正确语法。第二个参数(在你的例子中是 $Bestand)也必须是一个数组。所以把它改成 $Bestand = array(resultarray3['Bestand']);
  • @AyyappanSekar 我知道这一点并使用了不起作用的数组
  • @Pgr456:您好,您似乎从 $_REQUEST 数组中获取了一个值。它也必须是一个数组..检查...

标签: php sql arrays


【解决方案1】:

您每次都在循环中替换变量。 试试这个

$Bestand =array(); while($resultarray3 = mysql_fetch_array($result3)) { $Bestand[] = $resultarray3['Bestand'] } $Ergebnis = array_diff($_REQUEST['Menge'], $Bestand);

需要更改/修改

$Bestand=array()

$Bestand[] = $resultarray3['Bestand']

【讨论】:

  • 当我 print_r 数组 Ergebniss 我从 $_REQUEST['Menge'] 获取值,而不是从 array_diff 获取值
  • array_diff 给出了两个数组之间的差异。您能否编辑您的帖子并添加可能的数组,或者您可以参考php.net/manual/en/function.array-diff.php 寻求帮助
  • 我看到了你的代码,array_diff 返回一个数组,其中包含 array1 中不存在于任何其他数组中的所有条目。你的两个数组都不同,它会返回 $_REQUEST['Menge'] 结果
  • 其实这是array_diff的预期行为如果你想测试你可以刷参数$Ergebnis = array_diff($Bestand,$_REQUEST['Menge']);这时候你会得到$Bestand如果你print_r($Ergebnis);
【解决方案2】:

使用数组,而不是简单的 var

$Bestand[] = $resultarray3['Bestand'];

【讨论】:

  • 我也试过了,结果也一样
  • 结果是什么 var_dump($Bestand); $Ergebnis = array_diff($_REQUEST['Menge'], $Bestand); 之前
  • var_dump 是:array(3) { [0]=> string(2) "20" [1]=> string(3) "250" [2]=> string(2) "90" }
  • $Ergebnis = array_diff($_REQUEST['Menge'], array());返回相同的结果(警告:array_diff(): Argument #2 is not an array in )?
猜你喜欢
  • 2018-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多