PHP in_array()未找到值

PHP in_array()未找到值,php,arrays,Php,Arrays,可能重复: 使用此代码从数据库返回以下数组: $skus = array(); $result = mysql_query($sql); if($result){ while($rows = mysql_fetch_array($result)){ $skus[]=$rows; } } 结果: Array ( [0] => Array { [0] => PUBELI [group_sku] => P

可能重复:

使用此代码从数据库返回以下数组:

$skus = array();
$result = mysql_query($sql);
if($result){
  while($rows = mysql_fetch_array($result)){
      $skus[]=$rows;
  }
}
结果:

Array (
    [0] => Array {
            [0] => PUBELI
            [group_sku] => PUBELI
        )
    [1] => Array (
            [0] => PUBESSENTIALS
            [group_sku] => PUBESSENTIALS
        )
    [2] => Array (
            [0] => PUBMGRPROGROUPED
            [group_sku] => PUBMGRPROGROUPED
        )
    [3] => Array (
            [0] => PUB25GROUPED
            [group_sku] => PUB25GROUPED
        )
)
我正在使用in_数组查找此值:

if (in_array('PUBESSENTIALS', $skus))
它返回false。我这样做对吗


如果数据库中的值是字符串,为什么不将数组值括在引号中?

假设$sku是上面所示的完整数组,那么'subessentials'将不在$sku中,因为$sku包含子数组

但是,在_数组中('subessentials',$skus[1])将返回true


尝试循环遍历每个$sku元素,然后检查该子元素的in_数组(value,childArray)

假设$sku是上面显示的完整数组,则“subessentials”将不在$sku中,因为$sku包含子数组

但是,在_数组中('subessentials',$skus[1])将返回true


尝试循环遍历每个$skus元素,然后检查该子元素的in_数组(value,childArray)

您只查看第一个数组,而不查看任何其他数组。您应该查看每个子阵列以测试每个子阵列。像这样的东西可以完成这项工作:

foreach($skus as $sku) {
    if (in_array('PUBESSENTIALS', $sku)) {
        return true;
    }
}

您只查看第一个数组,而不查看任何其他数组。您应该查看每个子阵列以测试每个子阵列。像这样的东西可以完成这项工作:

foreach($skus as $sku) {
    if (in_array('PUBESSENTIALS', $sku)) {
        return true;
    }
}

如果你可以用MySql做一些事情,不要使用PHP! 尝试以下解决方案:

$sql = "SELECT * FROM table WHERE str = 'PUBESSENTIALS'"; // some query just add WHERE

$result = mysql_query($sql);
if($result) $Row = mysql_fetch_array($result)

如果你可以用MySql做一些事情,不要使用PHP! 尝试以下解决方案:

$sql = "SELECT * FROM table WHERE str = 'PUBESSENTIALS'"; // some query just add WHERE

$result = mysql_query($sql);
if($result) $Row = mysql_fetch_array($result)

事实上,我是用另一种方式做的。我在查询中使用了where子句并检查了numrows。事实上,我用了另一种方法。我在查询中使用where子句并检查numrows