【发布时间】:2018-08-07 22:35:36
【问题描述】:
以下是集合中的数组:
array:1 [▼
"online" => array:2 [▼
"IS-003" => array:19 [▼
"product" => Product {#831 ▶}
"quantity" => 1
"payment-option" => "online"
]
"HA4" => array:19 [▼
"product" => Product {#822 ▶}
"quantity" => 1
"payment-option" => "online"
]
]
]
每当用户更改payment-option 时,上述数组也应相应更改。
例如,如果HA4['payment-option'] 从online 更改为cod,则父数组中应该有2 个数组。
以下是我想要的数组。
array:2 [▼
"online" => array:1 [▼
"IS-003" => array:19 [▼
"product" => Product {#831 ▶}
"quantity" => 1
"payment-option" => "online"
]
]
"cod" => array:1 [▼
"HA4" => array:19 [▼
"product" => Product {#822 ▶}
"quantity" => 1
"payment-option" => "cod"
]
]
]
到目前为止我尝试过但无法获得预期结果的事情:
$paymentOptionCart = collect();
foreach ($cart as $paymentType => &$details) {
foreach ($details as $c => $p) {
if ($c == $code) {
$details[$c]['payment-option'] = $request->option;
$paymentOptionCart->put($paymentType, $details);
unset($details[$c]);
}
}
}
在执行上述代码时,除了 payment-option 更新为 cod 之外,什么都没有发生。
我知道我在某个地方犯了一个愚蠢的错误,但我无法找到在哪里以及如何找到。
谁能帮帮我?
【问题讨论】:
-
$paymentOptionCart->put($paymentType, $details);,$paymentType您当前的paymentType 是吗?所以不动才有意义 -
@KendrickKesley 即使我这样做
$request->option,它也永远不会改变.. 我不知道为什么.. -
我只是在确认您是否将
$paymentOptionCart->put($paymentType, $details);中的$paymentType更改为$request->option。你会得到与使用$paymentOptionCart->put($paymentType, $details);时相同的结果? -
请先告诉我们你是如何得到数组的
-
@KendrickKesley 是的,我确实得到了相同的结果..
标签: php arrays laravel multidimensional-array laravel-5.4