[PHP] 利用 array_column() 轉換關聯式陣列為比較簡單的陣列格式

分享:
標籤: PHP

我們要在 PHP 處理資料的時後,往往會需要將資料轉換為比較簡單的格式之後會比較容易將其內容顯示在頁面上,這時候就可以利用 array_column() 這個函式來幫我們轉換內容。

假設現在有一個資料從資料庫撈出來後長這樣:

$records = array(
    array(
        'id' => 1,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 2,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 3,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 4,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);

 

我如果只想要 first_name 欄位的資料,就可以透過 array_column() 轉換,像這樣:

$first_names = array_column($records, 'first_name');

 

這樣就能把 first_name 裡面的內容轉換為比較簡單的陣列,結果為:

Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

 

array_column() 也可以帶第二個參數,這樣第二個參數就會是關聯式陣列的 key,第一個則是對應的 value,像是:

$last_names = array_column($records, 'last_name', 'id');

 

結果就變成:

Array
(
    [1] => Doe
    [2] => Smith
    [3] => Jones
    [4] => Doe
)

 

這樣在資料的應用上就可以方便很多,有需要的可以試試看。

 

 

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。