PHP的in_数组不工作

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

我有2个数组,DefaultSizes和ExistingSizes,它们是我从数据库中检索到的。 $DefaultSizes的值为“L”、“M”、“S”,而$ExistingSizes的值为“S”。(运行foreach查找以检查两者的值)

我想打印$DefaultSize中的值,而不是$ExistingSize中的值

这是我的代码:

$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]或类似的东西。