[英]in_array alternative for check in PHP
我正在使用in_array()來檢查product_id的值是否在數組中,但似乎無法正常工作。
這是我在會話變量內添加帶有附加信息的新product_id的方式:
$_SESSION['product_list']['premium'][$product_id] = array(
"price" => $price,
"name" => $name
);
這是我的代碼,用於檢查會話中是否已經添加了該代碼(以防止同一產品重復)
$array_to_check = $_SESSION['product_list']['premium'];
if ( in_array($product_id, $array_to_check) ) {
echo json_encode( 'already exists' );
} else {
echo json_encode( 'successfully added' );
}
但是,盡管我嘗試一遍又一遍地添加相同的產品,但我總是“成功添加”。
此代碼有什么問題?
您應該使用array_key_exists
array_key_exists($product_id, $array_to_check)
$product_id
是該深度的關鍵。 in_array
檢查值。
您可以檢查為
if(isset($_SESSION['product_list']['premium'][$product_id]))
{
//yes
}
if(isset($_SESSION['product_list']['premium'][$product_id])) {
echo json_encode('already exists');
} else {
echo json_encode('successfully added');
}
除非$_SESSION['product_list']['premium'][$product_id]
為空或false,否則它將為true
我猜您想檢查Assoc Array中的鍵,因為您應該使用array_key_exists(),in_array()將檢查值而不是鍵。
例如:
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.