[英]PHP multidimensional array to individual arrays
我有一個允許輸入多個值的表單
車一
<input type="text" name="vehicle[]" placeholder="Enter Your Vehicle" />
車二
<input type="text" name="vehicle[]" placeholder="Enter Your Vehicle" />
提交后,它會轉換為這樣的數組
["vehicle"]=>
array(1) {
[0]=>
string(5) "Acura"
[1]=>
string(5) "Mazda"
}
["doors"]=>
array(1) {
[0]=>
string(6) "4 Door"
[1]=>
string(6) "2 Door"
}
然后我想將其轉換為像這樣的單個數組
[VehicleOne]=>
array(1) {
[vehicle]=>
string(5) "Acura"
[doors]=>
string(5) "4 door"
}
我創建了一個自定義函數來執行此操作,但我想知道是否可以使用本機 php 方法而不是多個循環?
所以這就是我目前正在使用的。 並非每個 $_POST 值都是一個數組,因此我必須檢查,如果是,則將它們分開。
foreach ($fields as $key => $row) {
if(is_array($row)){
foreach ($row as $column => $value) {
$doctors[$column][$key] = $value;
}
}
}
不需要,只需在輸入中按照您希望的方式構造數組:
<input type="text" name="data[0][vehicle]" placeholder="Enter Your Vehicle" />
<input type="text" name="data[1][vehicle]" placeholder="Enter Your Vehicle" />
<input type="text" name="data[0][doors]" placeholder="Enter Your Doors" />
<input type="text" name="data[1][doors]" placeholder="Enter Your Doors" />
然后$_POST
將包含:
Array
(
[data] => Array
(
[0] => Array
(
[vehicle] => Acura
[doors] => 4 door
)
[1] => Array
(
[vehicle] => Maza
[doors] => 2 door
)
)
)
如果您不能/不會更改表單,則類似於:
foreach($_POST['vehicle'] as $k => $v) {
$result[] = ['vehicle' => $v, 'doors' => $_POST['doors'][$k]];
}
將產生:
Array
(
[0] => Array
(
[vehicle] => Acura
[doors] => 4 door
)
[1] => Array
(
[vehicle] => Maza
[doors] => 2 door
)
)
當使用數組時,使用像VehicleOne
東西是沒有意義的,因為你這樣做只是為了使它獨一無二,當 0、1 等已經是。
也許這對你有用?
我創建了一個帶有關聯鍵的臨時數組,稍后我將其提取到多個數組($vehicle1 和 2)。
Foreach($vehicle["vehicle"] as $key => $v){
$temp["vehicle" . ($key+1)]["vehicle"] = $v;
$temp["vehicle" . ($key+1)]["doors"] = $d["doors"][$key];
}
Extract($temp);
Var_dump($vehicle1, $vehicle2);
這是一個循環,至少不是多個循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.