PHP的in_数组不工作
我有2个数组,DefaultSizes和ExistingSizes,它们是我从数据库中检索到的。 $DefaultSizes的值为“L”、“M”、“S”,而$ExistingSizes的值为“S”。(运行foreach查找以检查两者的值) 我想打印$DefaultSize中的值,而不是$ExistingSize中的值 这是我的代码:PHP的in_数组不工作,php,Php,我有2个数组,DefaultSizes和ExistingSizes,它们是我从数据库中检索到的。 $DefaultSizes的值为“L”、“M”、“S”,而$ExistingSizes的值为“S”。(运行foreach查找以检查两者的值) 我想打印$DefaultSize中的值,而不是$ExistingSize中的值 这是我的代码: $count = 1; foreach ($DefaultSizes as &$def) { if(in_array($def['Size'],$E
$count = 1;
foreach ($DefaultSizes as &$def)
{
if(in_array($def['Size'],$ExistingSizes) === false)
{
echo "$def[Size]<br>";
$count++;
}
}
$count=1;
foreach($defaultsize as&$def)
{
if(在_数组中($def['Size'],$existingsize)==false)
{
回显“$def[Size]
”;
$count++;
}
}
值“S”仍然会被打印出来。不需要在数组中使用
。使用array_diff
并缩短代码:
$DefaultSizes = ['L','M','S'];
$ExistingSizes = ['S'];
$not_in_existing = array_diff($DefaultSizes, $ExistingSizes);
print_r($not_in_existing); // array('L', 'M')
array_diff是一个php函数,它将提供两个arraysHi的差异,我将代码更改为$not_in_existing=array_diff($defaultsize,$existingsize);打印(不存在);但在Array_diff行上有一个错误“Array-to-string conversion”。我的数组是从数据库中提取的。并使用:while($row=mysqli\u fetch\u array($result)){$defaultsize[]=$row;}存储到数组中。这就是问题所在吗?Print\r($defaultsize)
。它是多维的?。如果是-你需要把它变成一个维度。它不是。我在sql查询中使用了“从大小中选择大小”,因此其中只有“大小”列。它是。如果你把它打印出来,你会看到的。要使其成为一维,您应该执行$defaultsize[]=$row[0]代码>或类似的东西。