动态获取/设置多维数组中的值的函数
问题描述
我正在尝试用 php 编写购物车,但在多维数组中获取/设置值时遇到问题.我将当前订单保存在 $_SESSION['basket']
中.看起来像这样:
I am trying to write a shoping cart in php and I have a problem with get/set values in multidimentional arrays.
I keep the current order in $_SESSION['basket']
. It looks like that:
每一项都存储为一个子数组.我有一个函数,它检查给定的项目是否存在于 basket
数组中并返回它的路径.例如,如果我想检查具有 id
98
(CD-Rom) 的产品,该函数返回以下路径:1:extras:1.
Every item is stored as a subarray. I have a function, which checks if a given item exists in the basket
array and returns the path to it. For example, if I want to check for a product with id
98
(CD-Rom), the function returns the following path: 1:extras:1
.
如果我想在数组中获取或设置一个值,我无法弄清楚如何使用路径.是否可以在不使用 eval()
的情况下构造数组键的路径?我有这些功能:
I cant figure out how to use the path if I want to get or a set a value in the array. Is it possible to construct the path to an array key, without the use of eval()
? I have these functions:
所以,$price = get_val($_SESSION['basket'], $path, 'price')
;应该返回 CD-ROM 的价格 (19.99)
So, $price = get_val($_SESSION['basket'], $path, 'price')
; should return the price for CD-ROM (19.99)
set_val($_SESSION['basket'], $path, 'price', '30');
将 CD-ROM 的价格设置为 30.
set_val($_SESSION['basket'], $path, 'price', '30');
will set the price for CD-ROM to 30.
有没有更好的方法来做到这一点?
Is there a better way for doing this?
谢谢.
推荐答案
这是我前段时间微调的代码:
Here you go a code I have finetuned some time ago:
看到这个测试示例,我相信这就是你要找的:
See this test example, I believe it is what you are looking for:
这篇关于动态获取/设置多维数组中的值的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!