如何將合并後的 php 陣列分割成原始部分?使用 array_chunk() 函數將陣列分割成特定大小的區塊。使用自定義循環逐個元素地遍歷,根據原始來源分配到不同的陣列。如果陣列包含鍵值,可以使用 array_group() 根據元素進行分組。
PHP 數組合并后的分割
合并數組是一種在 PHP 中經常遇到的操作。然而,在某些情況下,我們可能需要將合并后的數組分割成其原始部分。本文將介紹如何使用 PHP 內置函數和自定義方法來實現此操作。
內置函數
array_chunk()
此函數將數組分割成指定大小的塊。例如:
$mergedArray = ['a', 'b', 'c', 'd', 'e', 'f']; $chunks = array_chunk($mergedArray, 2); print_r($chunks);
登錄后復制
輸出:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
[1] => f
)
)
登錄后復制
自定義方法
使用循環
我們可以使用循環逐個元素地遍歷合并后的數組,并根據其原始來源將元素分配到不同的數組中。例如:
$mergedArray = ['a', 'b', 'c', 'd', 'e', 'f'];
$array1 = [];
$array2 = [];
foreach ($mergedArray as $element) {
if ($element % 2 == 0) {
$array1[] = $element;
} else {
$array2[] = $element;
}
}
print_r($array1);
print_r($array2);
登錄后復制
輸出:
Array
(
[0] => a
[1] => c
[2] => e
)
Array
(
[0] => b
[1] => d
[2] => f
)
登錄后復制使用分組
如果合并后的數組中包含密鑰,我們可以使用分組對元素進行排序。例如:
$mergedArray = [
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 1,
'e' => 3,
'f' => 2,
];
$groupedArray = array_group($mergedArray, function ($item) {
return $item % 2;
});
print_r($groupedArray);
登錄后復制
輸出:
Array
(
[1] => Array
(
[0] => a
[1] => d
)
[2] => Array
(
[0] => b
[1] => f
[2] => c
[3] => e
)
)
登錄后復制
實戰案例
考慮以下場景:
問題:合并來自不同來源的兩個數組,并將其分割成其原始部分。
解決方案:
- 使用
array_merge() 合并兩個數組:$array1 = ['a', 'c', 'e']; $array2 = ['b', 'd', 'f']; $mergedArray = array_merge($array1, $array2);
登錄后復制
- 使用
array_chunk() 分割合并后的數組:$chunks = array_chunk($mergedArray, 3); print_r($chunks);
登錄后復制
輸出將類似于:
Array
(
[0] => Array
(
[0] => a
[1] => c
[2] => e
)
[1] => Array
(
[0] => b
[1] => d
[2] => f
)
)
登錄后復制






