比方说,你有以下数组$_SESSION
:
$_SESSION['item_id'] = array(1, 1, 2);
$_SESSION['size'] = array('S', 'L', 'S');
$_SESSION['count'] = array(250, 750, 250);
注意:以下答案假设这 3 个 SESSION 值中的数组长度相等。
您将需要创建新数组来存储结果:
$newArrayResult = array();
之后,您将需要执行for...each
循环以提取当前访问的密钥:
foreach($_SESSION['item_id'] as $key => $value){
//the logic goes here
}
接下来,我们将使用 item_id 作为 $newArrayResult 中的数组键。为此,我们需要先检查它是否已经定义。如果没有,则使用默认值创建密钥0
。我们使用名为的内置函数进行检查array_key_exists
。这样,我们将避免遇到未定义的键索引错误。
if(!array_key_exists($value, $newArrayResult)){
$newArrayResult[$value] = 0;
}
在我们获得 $newArrayResult 的键之后,下一步就是简单地将计数值存储到其中:
$newArrayResult[$value] += $_SESSION['count'][$key];
完毕。打印结果进行测试:
print_r($newArrayResult);
这是整个代码,供您复制粘贴。不要忘记先阅读并理解上述流程:
$_SESSION['item_id'] = array(1, 1, 2);
$_SESSION['size'] = array('S', 'L', 'S');
$_SESSION['count'] = array(250, 750, 250);
$newArrayResult = array();
foreach($_SESSION['item_id'] as $key => $value){
if(!array_key_exists($value, $newArrayResult)){
$newArrayResult[$value] = 0;
}
$newArrayResult[$value] += $_SESSION['count'][$key];
}
print_r($newArrayResult);