[PHP-users 34850] 添え字の再付与について

kona uto-s @ ymail.plala.or.jp
2009年 11月 24日 (火) 23:31:20 JST


こんにちは。konaと申します。

SESSION変数の添え字を初期化して0から再付与したいのですが
うまくいかないので困っています。
何か良い方法がありましたらアドバイス頂けますと助かります。

具体的には、ショッピングカートでSESSIONを使った際、
SESSION変数を出力すると下記の様になります。

print_r($_SESSION['cart']);
 ↓
 Array (
  [0] => Array ( [id] => 5 [kazu] => 1 [date] => 201003 )
  [1] => Array ( [id] => 2 [kazu] => 2 [date] => 201004 )
  [2] => Array ( [id] => 3 [kazu] => 3 [date] => 201005 )
  [3] => Array ( [id] => 3 [kazu] => 5 [date] => 201004 )
 )

例えば添え字の[2]をunset等で削除した場合、下記の様になりますが...

 Array (
  [0] => Array ( [id] => 5 [kazu] => 1 [date] => 201003 )
  [1] => Array ( [id] => 2 [kazu] => 2 [date] => 201004 )
  [3] => Array ( [id] => 3 [kazu] => 5 [date] => 201004 )
 )

これを再度添え字の[0]から連番で振り直したいのです。

 Array (
  [0] => Array ( [id] => 5 [kazu] => 1 [date] => 201003 )
  [1] => Array ( [id] => 2 [kazu] => 2 [date] => 201004 )
  [2] => Array ( [id] => 3 [kazu] => 5 [date] => 201004 )
 )

下記の通り一旦配列に格納して$_SESSIONを初期化した上で
再度SESSIONに再格納しているのですが、状況は変わりません。

 $TEMP['cart'] = $_SESSION['cart'];
 unset($_SESSION['cart']);
 foreach($_TEMP['cart'] as $val) {
     $_SESSION['cart'][] = $val;
 }

よろしくお願い致します。




PHP-users メーリングリストの案内