私は多次元配列を持っています。私はFORループでループスルーし、値を返してデータベースに入力できます。 問題は、ユーザーがunsetを使用して$ _SESSION [cart]配列から取り出した項目を削除したときに発生します。それは、カートにライン2だった場合具体的に私は、forループで使用する値は、それらのギャップを持っているので、今、私はもはやFORループを使用することができますPHPが多次元配列から価値を得る
unset($_SESSION[cart][2]);
を使用しないだろう。
元の配列は次のようになります
カート(それは、これは一例であり、任意の行であってもよい)から2行目を削除した後$_SESSION['cart'][1]
$_SESSION['cart'][2]
$_SESSION['cart'][3]
:
$_SESSION['cart'][1]
$_SESSION['cart'][3]
これは配列の構造です:
$_SESSION['cart'][$lineId] = array('stockNumber' => $stockNumber, 'description' => $description, 'masterPrice' => $masterPrice);
$ lineId私は現在、このループを使用して、カートからデータを取得カート
に行項目です:
for ($i = 1, $howMany = count($_SESSION['cart']); $i < $howMany+1;) {
$stk_code = $_SESSION['cart'][$i]["stockNumber"];
$description = $_SESSION['cart'][$i]["description"];
$unitPrice = $_SESSION['cart'][$i]["masterPrice"];}
私はこれを理解する上で助けとループへの道を必要とします行番号に関係なく配列を介して私はカートに入れるアイテムの数や取り出し方法を知る方法がありません。どんな助けもありがとう。
'foreach'のための代わりのforeachを使用することができます。 $ _SESSION ['cart']配列をarray_values($ _ SESSION ['cart'])に設定しておけば削除した後に – bishop
を削除した後、配列を再度索引付けします。 –