php In_数组不能正确使用此代码

php In_数组不能正确使用此代码,php,Php,由于某些原因,我无法使in_数组函数与此代码一起正常工作。我想检查从数据库返回的数组中是否有特定的数字。因此,我将其传递到in_数组函数中,但即使在数字周围添加或删除引号,它仍然返回false <?php include('connection.php'); $sql = mysqli_query($conn,"SELECT sku FROM inventory"); $arr = array(); while($row = mys

由于某些原因,我无法使in_数组函数与此代码一起正常工作。我想检查从数据库返回的数组中是否有特定的数字。因此,我将其传递到in_数组函数中,但即使在数字周围添加或删除引号,它仍然返回false

    <?php 

     include('connection.php');

     $sql = mysqli_query($conn,"SELECT sku FROM inventory");

     $arr = array();

     while($row = mysqli_fetch_array($sql)){
       $arr[] = $row;

       //echo $row['sku']. "<br>";
   }

     //echo $arr[0]['sku'];

        print_r($arr);

   if(in_array(12345678, $arr[0], TRUE)){
       echo "here";
    }else{
      echo "not here";
   }
  ?>

对于_array()中的
来说,您正在使数组变得复杂。如果将其设置为一维数组而不是多维数组,则它将正常工作

<?php 

include('connection.php');

$sql = mysqli_query($conn,"SELECT sku FROM inventory");

$arr = [];

while($row = mysqli_fetch_array($sql)){
    $arr[] = $row['sku'];
}

print_r($arr);

if(in_array('12345678', $arr)){
    echo "here";
}else{
    echo "not here";
}
?>


您只检查第一行。也许它在另一行。你为什么不把支票放在查询中
从库存中选择sku,其中sku=12345678
您在严格模式(第三个参数)下在_数组中使用
,并且
mysqli_fetch_数组
返回字符串。不行。但是是的,如果你只检查表中是否有值,就不需要这样。对不起,你是对的。我可能在想PDO。哇,谢谢!我不知道是$arr=array()引起了这个问题!我不明白为什么我的数组是多维的,不是
$arr=array()
导致了问题,而是
$arr[]=$row导致问题的原因。那是在构建一个多维数组,而
in_array()
在这上面不起作用啊,我明白了。不定义$row['SKU'];对的我只是有目的地学习PHP大约两周了。我到处涉猎,但从未认真对待过。