使用键在数组中搜索特定值

时间:2011-09-14 13:54:51

标签: php arrays

我有一个动态填充值的数组,我必须检查是否存在值。

我尝试了以下但是它不起作用:

while (.....) {
    $fileData[] = array( "sku" => $sku, "qty" => $qty);
}

$product_sku = $product->getSku();

if (in_array(array("sku",$product_sku), $fileData)){
    echo "OK <BR/>";    
}
else{
    echo "NOT FOUND <BR/>"; 
}

钥匙的全部东西让我困惑。我应该更改表结构还是只更改in_array()语句?你能帮我找个解决方案吗?

1 个答案:

答案 0 :(得分:1)

您可以查看数组中是否存在以下键:

array_key_exists('sku', $fileData);

另外,您可以直接查看:

if (isset($fileData['sku'])

看起来您可能会尝试以递归方式检查密钥吗?我想我们需要看看getSku()返回的内容。 $ fileData []将值附加到现有数组,因此如果$ fileData是一个空数组,那么

fileData[0] = array("sku" => $sku, "qty" => $qty);

fileData = array("sku" => $sku, "qty" => $qty);

尝试使用此尺寸(有一些假数据用于演示目的):

$fileData = array(
    array("sku" => "sku1", "qty" => 1),
    array("sku" => "sku2", "qty" => 2),
);

$sku = "sku2"; // here's the sku we want to find
$skuExists = false;

// loop through file datas
foreach ($fileData as $data)
{
    // data is set to each array in fileData
    // check if sku exists in that array
    if (in_array($sku, $data))
    {
        // if it does, exit the loop and flag
        $skuExists = true;
        break;
    }
}

if ($skuExists)
{
    // do something
}