工作中常需將結構為 ['key' => ['a'=>'A','b'=>'B']] 的二維陣列「拍平」為一維。若確定第二層只有一個子陣列,可巧用 array_pop() 直接取出:
$arr = ['name' => ['a'=>'abc','b'=>'bcd','c'=>'cde']]; $flat = array_pop($arr); // 返回 ['a'=>'abc','b'=>'bcd','c'=>'cde'] // $arr 變為空陣列,原子陣列被彈出並返回
array_pop() 刪除並返回陣列的最後一個元素。對於只有一個鍵值對的陣列,該元素即為內層陣列。
array_pop() 只返回最後一個,其餘丟失。function flattenFirstLevel(array $arr): array {
// 取第一個元素的值(不修改原陣列)
return reset($arr) ?: [];
}
// 或遍歷合併多個子陣列
function mergeAllValues(array $arr): array {
$result = [];
foreach ($arr as $sub) {
if (is_array($sub)) $result = array_merge($result, $sub);
}
return $result;
}