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