情況如下。我有一個父陣列,如下所示:
$parent = [
1 => ['test1', 'test2'],
2 => ['test1_1', 'test2_2'],
];
我想按列對資料進行分組。
期望的結果:
[
1 => ['test1', 'test1_1'],
2 => ['test2', 'test2_2'],
]
1 個稱為 parent 的父陣列內部包含 2 個陣列。我想將這兩者結合起來,使它們具有與上述相同的值。所以這意味著應該根據索引號組合陣列。
由于我不使用字串鍵,我將如何做到這一點?我相信在這種情況下沒有可用的內置功能。
我想我可以開始創建一個新陣列并在父陣列中使用 for 回圈。
但是,我嘗試了array-combine函式,這沒有顯示我想要的結果。
[
1 => ['test1' => 'test1_1', 'test2' => 'test2_2'
]
uj5u.com熱心網友回復:
如果您需要保留這些第一級密鑰,您可以在轉置后重新應用它們。
代碼:(演示)
var_export(
array_combine(array_keys($parent), array_map(null, ...$parent))
);
否則,您可以轉置并接受重新索引的第一級鍵。老實說,我看不出保留第一級鍵的任何充分理由,因為通過轉置,您洗掉了第一級鍵和行值之間的初始關聯。
代碼:(演示)
var_export(
array_map(null, ...$parent)
);
如果這些技術不適合您的實際專案資料,那么我們將需要在您的問題正文中提供更真實的示例陣列。
uj5u.com熱心網友回復:
回圈遍歷頂級陣列的鍵。然后使用迭代的當前索引來獲取嵌套陣列的對應列。
$result = [];
foreach (array_keys($parent) as $i => $k) {
$result[$k] = array_column($parent, $i);
}
演示
這假設行數與列數相同。如果這不是真的,你還不清楚你期望的結果是什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/519453.html
上一篇:PHP驗證字串是否包含除字母數字或給定字符之外的任何其他內容
下一篇:@foreachphp串列物件
