[英]Split multidimensional array into arrays
因此,我從如下形式的表單發布中得到了結果:
$data = [
'id_1' => [
'0' => 1,
'1' => 2
],
'id_2' => [
'0' => 3,
'1' => 4
],
'id_3' => [
'0' => 5,
'1' => 6
]
];
我想要實現的是將這個數組分成兩個不同的數組,如下所示:
$item_1 = [
'id_1' => 1,
'id_2' => 3,
'id_3' => 5
]
$item_2 = [
'id_1' => 2,
'id_2' => 4,
'id_3' => 6
]
我已經嘗試過將所有合適的數組方法(例如array_chunk,array_merge)與循環一起使用,但是我似乎無法全神貫注於如何實現這一點。 我見過很多類似的文章,其中前幾個鍵的名稱不像我的數組那樣(id_1,id_2,id_3)。 但是在我的情況下,鍵的名稱至關重要,因為需要將它們設置為各個數組中的鍵的名稱。
無循環的解決方案,只是為了好玩:
$result = [[], []];
$keys = array_keys($data);
array_map(function($item) use(&$result, &$keys) {
$key = array_shift($keys);
$result[0][$key] = $item[0];
$result[1][$key] = $item[1];
}, $data);
只需一個普通的foreach
循環即可。
$item_1 = [];
$item_2 = [];
foreach ($data as $k => $v){
$item_1[$k] = $v[0];
$item_2[$k] = $v[1];
}
希望這可以幫助。
假設在每個“ id_1”上只有2組鍵值對,則將執行您希望實現的操作。
$item_1 = array();
$item_2 = array();
foreach ($data as $item) {
$item_1 = $item[0];
$item_2 = $item[1];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.