我有一个动态填充值的数组,我必须检查是否存在值。
我尝试了以下但是它不起作用:
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()语句?你能帮我找个解决方案吗?
答案 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
}