首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 技巧:將簡單二維陣列轉為一維陣列

     編輯:PHP 相關知識

PHP 技巧:將簡單二維陣列轉為一維陣列

工作中常需將結構為 ['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;
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved