php会话多维数组

时间:2016-07-08 02:18:01

标签: php arrays session multidimensional-array

$_SESSION['items_' . $restaurant_id]["menu_0"] = array(
    order_id" => $order_id,
    'user_order_id' => $last_order["user_order_id"],
    "menu_id" => $menu_id,
    "qty" => $qty,
);

该代码是我的会话,将返回成为:

["items_250"]=>
array(2) {
["menu_0"]=>
array(3) {
  ["user_order_id"]=>
  string(2) "85"
  ["menu_id"]=>
  array(3) {
    [0]=>
    string(2) "236"
    [1]=>
    string(2) "357"
    [2]=>
    string(2) "232"
  }
  ["qty"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "1"
    [2]=>
    string(1) "1"
  }
}
我的`$ menu_id中的

是数组:

array(4) {
[0]=>
string(3) "236"
[1]=>
string(3) "357"
[3]=>
string(3) "232"
}

这是我的$qty

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "1"
  [2]=>
  string(1) "1"
}

我想让我的会话像这样返回:

["items_250"]=>
array(3) {
["menu_0"]=>
array(3) {
  ["user_order_id"]=>
  string(2) "85"
  ["menu_id"]=>
  string(3) "236"
  ["qty"]=>
  int(1)
}
["menu_1"]=>
array(3) {
  ["user_order_id"]=>
  string(2) "85"
  ["menu_id"]=>
  string(3) "357"
  ["qty"]=>
  int(1)
}
["menu_2"]=>
array(3) {
  ["user_order_id"]=>
  string(2) "85"
  ["menu_id"]=>
  string(3) "232"
  ["qty"]=>
  int(1)
}
你可以帮助我,让我的会话变成那样吗?

谢谢(

1 个答案:

答案 0 :(得分:2)

只需使用好的ol' for循环。首先获取count,然后创建必要的行:

$count = count($menu_id); // get count
for($i = 0; $i < $count; $i++) {
    $_SESSION['items_' . $restaurant_id]['menu_' . $i] = array(
        'user_order_id' => $last_order['user_order_id'],
        'menu_id'       => $menu_id[$i],
        'qty'           => $qty[$i],
    );
}