簡體   English   中英

如何訪問特定鍵->值對,並從PHP的關聯數組中排除特定鍵->值對?

[英]How to access a particular key->value pair and exclude a specific key->value pair from an associative array in PHP?

我有一個名為$_SESSION[BASE_SESSION_NAME]['my_cart']的關聯數組。 供您參考,我正在打印數組,如下所示:

Array
(
    [6f993b72511c37f4ab4d7273066b8160] => Array
        (
            [pack_id] => 6f993b72511c37f4ab4d7273066b8160
            [pack_type] => test
            [pack_type_id] => 4
            [pack_name] => NEET XII Biology
            [pack_price] => 459.00
            [pack_validity] => Array
                (
                    [years] => 1
                    [months] => 0
                    [days] => 0
                )

        )

    [cart_summary] => Array
        (
            [total_no_packages] => 3
            [total_pack_price] => 1557
            [final_total_pack_price] => 1557
            [total_pack_discount] => 0
            [apply_deal_code] => 0
            [no_of_discounted_packages] => 0
        )

    [67f76ffae26ffdcde7a392c5534c972a] => Array
        (
            [pack_id] => 67f76ffae26ffdcde7a392c5534c972a
            [pack_type] => test
            [pack_type_id] => 4
            [pack_name] => NEET XII Chemistry
            [pack_price] => 599.00
            [pack_validity] => Array
                (
                    [years] => 1
                    [months] => 0
                    [days] => 0
                )

        )

    [31dc7c5d9b9cb5a2ba968e74efd4a475] => Array
        (
            [pack_id] => 31dc7c5d9b9cb5a2ba968e74efd4a475
            [pack_type] => test
            [pack_type_id] => 4
            [pack_name] => NEET XII Physics
            [pack_price] => 499.00
            [pack_validity] => Array
                (
                    [years] => 1
                    [months] => 0
                    [days] => 0
                )

        )

)

現在,我只想訪問具有pack_id值或ok key pack_id值的鍵。 例如,值[31dc7c5d9b9cb5a2ba968e74efd4a475]或密鑰pack_id的值為[pack_id] => 31dc7c5d9b9cb5a2ba968e74efd4a475 但是問題是,存在另一個具有鍵[cart_summary]數組,我不想使用該數組中的任何東西。 我必須對每個此類pack_id進行查詢。 所以我想借助循環來觸發查詢。 誰能幫我解決這個問題? 提前致謝。 我要使用的查詢如下:

SELECT package_type.package_type_name
FROM package_type
JOIN test_packages ON package_type.package_type_id = test_packages.test_pack_type_id
WHERE test_packages.test_pack_id = '$propsed_pack_id'

這是您在評論中要求的關聯數組的foreach

$mycart = $_SESSION[BASE_SESSION_NAME]['my_cart'];// where $mycart is the array structure
                                                  //as shown above in the question
foreach($mycart as $key=>$value)
{
     //where $key holds the pack_id i.e. the array key value
     $propsed_pack_id = $value['pack_id'];
     if($key != "cart_summary")
     {
         //execute you sql query
         $query = "SELECT package_type.package_type_name
         FROM package_type
         JOIN test_packages ON package_type.package_type_id =    
         test_packages.test_pack_type_id
         WHERE test_packages.test_pack_id = '$propsed_pack_id'";
         ......

     }
 }

我希望這可以有所幫助。

unset($arr["item"])從名為$ arr的數組中刪除鍵為“ item”的項目。

一種方法是,您可以按照saran banerjee的指示直接放入“購物車摘要”支票。

但我建議,您可以對數組中的“ pack_id”鍵進行檢查,而不是對“購物車摘要”進行硬編碼檢查。 如果存在,則執行對該pack_id的查詢,否則不執行。

$mycart = $_SESSION[BASE_SESSION_NAME]['my_cart']; 

foreach($mycart as $key=>$value)
{
     //where $key holds the pack_id 
     $propsed_pack_id = isset($value['pack_id']) ? $value['pack_id'] : '';
     if($propsed_pack_id != "")
     {
         //execute you sql query
         $query = "SELECT package_type.package_type_name
         FROM package_type
         JOIN test_packages ON package_type.package_type_id =    
         test_packages.test_pack_type_id
         WHERE test_packages.test_pack_id = '$propsed_pack_id'";

     }
 }

如果我很了解您想要什么,則應該使用循環並尋找正確的密鑰。

如果您的后端語言是PHP。

foreach($_SESSION[BASE_SESSION_NAME]['my_cart'] as $cart) {
    if (isset($cart['pack_id'])) {
        // Here you get the pack id, only if exist as a key inside the array
    }
}

希望能有所幫助...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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