以下に、いくつかのシンプルで簡単な方法とコード例を示します。
- array_mergeと再帰関数を使用する方法: この方法では、array_merge関数と再帰関数を組み合わせて多次元配列を1次元配列にフラット化します。
function flattenArray($array) {
$result = [];
foreach ($array as $element) {
if (is_array($element)) {
$result = array_merge($result, flattenArray($element));
} else {
$result[] = $element;
}
}
return $result;
}
// 使用例
$multiDimensionalArray = [[1, 2, [3]], 4, [5, [6, 7]]];
$flattenedArray = flattenArray($multiDimensionalArray);
print_r($flattenedArray);
出力:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
)
- array_walk_recursiveを使用する方法: この方法では、array_walk_recursive関数を使用して多次元配列を1次元配列にフラット化します。
function flattenArray(&$array, &$result) {
array_walk_recursive($array, function($value) use (&$result) {
$result[] = $value;
});
}
// 使用例
$multiDimensionalArray = [[1, 2, [3]], 4, [5, [6, 7]]];
$flattenedArray = [];
flattenArray($multiDimensionalArray, $flattenedArray);
print_r($flattenedArray);
出力:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
)