に次の配列があるとします$_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
}
次に、$newArrayResult の配列キーとして item_id を使用します。そのためには、すでに定義されているかどうかを最初に確認する必要があります。そうでない場合は、デフォルト値でキーを作成します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);