基于PHP多维数组中的键存储值

时间:2014-06-26 19:58:48

标签: php arrays multidimensional-array

我想存储以下$ cart_item数组中的值:

[addons] => Array( 
    [0] => Array(
        [name] => First Name - First Name
        [value] => Gary
        [price] =>
    )
    [1] => Array(
        [name] => Church Information - Name
        [value] => Victory Bible Church
        [price] =>
    )
    [2] => Array(
        [name] => Shirt Size
        [value] => XL
        [price] =>
    )
)

我意识到我无法根据索引获取值,因为此数组有时会有更多的子数组。例如,我不能使用以下字符串来存储数据:

$shirt_size = $cart_item['addons'][2]['value'];

因为有人可能会在数组中添加名称“Church Information - City”,并且将采用数组索引[2],然后将$ shirt_size变量设为'Church Information - City'值。我不希望发生这种情况。

将只包含其他2个可能的数组。我想存储与名称相关的所有可能值。

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

如果你想要变量中的每个值,你可以使用'name'键的值来存储'value'键的值。

foreach ($cart_item['addons'] as $key => $val) {
    $name = strtolower(str_replace(' ','_', $val['name']));
    $$name = $val['value'];
}

echo $shirt_size; //output as XL

OR

如果您只想要衬衫尺码,那么您可以申请条件并获得您的价值。

foreach ($cart_item['addons'] as $key => $val) {
    if ($val['name'] == 'Shirt Size') {
        $shirt_size = $val['value'];
    }
}

echo $shirt_size; //output as XL

希望这可以帮助您获取所需的值。