簡體   English   中英

in_array替代檢查PHP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM