首頁  >  文章  >  後端開發  >  PHP的array_column()函數用法詳解

PHP的array_column()函數用法詳解

PHPz
PHPz原創
2023-06-27 12:58:485284瀏覽

在PHP中,經常需要對陣列進行處理和操作。有時候,需要從一個多維數組中獲取特定的一列數據,這時候就可以使用array_column()函數來實現。本文將詳細介紹array_column()函數的用法。

一、什麼是array_column()函數

array_column()是一個PHP函數,用於從一個多維數組中取得指定的一列資料。該函數在PHP5.5版本中被引入,並且支援關聯數組和索引數組。

函數原型:
array_column ( array $array , mixed $column_key [, mixed $index_key = null ] ) : array

參數說明:
$array:要操作的多維數組;
$column_key:要取得的列的鍵名或是數值;
$index_key:可選參數,若指定該值,則作為傳回數組的鍵名。

二、使用範例

#下面我們來看一些array_column()函數的使用範例。

  1. 索引數組

假設我們有一個索引數組$users,其中保存了一些用戶的信息,我們希望從中取出所有使用者的姓名。可以透過以下程式碼來實現:

$users = array(0 => array('id'=>1, 'name'=>'Tom', 'email'=>'tom@example.com'),
               1 => array('id'=>2, 'name'=>'Jerry', 'email'=>'jerry@example.com'),
               2 => array('id'=>3, 'name'=>'Mike', 'email'=>'mike@example.com'));

$names = array_column($users, 'name');

print_r($names);

輸出結果為:

Array (
    [0] => Tom
    [1] => Jerry
    [2] => Mike
)
  1. #關聯數組

如果我們的陣列是關聯數組,我們可以以同樣的方式取得指定的一列資料。

例如,我們有一個關聯數組$students,其中包含了學生的一些信息,我們希望獲取所有學生的年齡:

$students = array('Tom' => array('age'=>20, 'gender'=>'male', 'city'=>'Beijing'),
                  'Jerry' => array('age'=>21, 'gender'=>'female', 'city'=>'Shanghai'),
                  'Mike' => array('age'=>19, 'gender'=>'male', 'city'=>'Guangzhou'));

$ages = array_column($students, 'age');

print_r($ages);

輸出結果為:

Array (
    [Tom] => 20
    [Jerry] => 21
    [Mike] => 19
)
  1. 取得多個鍵值

如果我們希望從一個多維數組中取得多個鍵值,可以把需要取得的鍵名放在一個陣列中,作為第二個參數傳入array_column()函數。

例如,我們有一個包含了多個城市的溫度資料的陣列$temperatures,我們希望取得每個城市的平均氣溫和最高氣溫,可以這麼做:

$temperatures = array(
    array('city'=>'Beijing', 'average'=>20, 'highest'=>28),
    array('city'=>'Shanghai', 'average'=>23, 'highest'=>30),
    array('city'=>'Guangzhou', 'average'=>25, 'highest'=>32)
);

$infos = array_column($temperatures, array('average', 'highest'), 'city');

print_r($infos);

輸出結果為:

Array (
    [Beijing] => Array (
        [average] => 20
        [highest] => 28
    )
    [Shanghai] => Array (
        [average] => 23
        [highest] => 30
    )
    [Guangzhou] => Array (
        [average] => 25
        [highest] => 32
    )
)
  1. 指定傳回數組的鍵名

有時候,我們希望在取得指定的列的資料時,指定傳回數組的鍵名。可以在array_column()函數的第三個參數內指定。

例如,在上一個例子中,我們希望以"平均氣溫"和"最高氣溫"作為返回數組的鍵名,可以這樣寫:

$temperatures = array(
    array('city'=>'Beijing', 'average'=>20, 'highest'=>28),
    array('city'=>'Shanghai', 'average'=>23, 'highest'=>30),
    array('city'=>'Guangzhou', 'average'=>25, 'highest'=>32)
);

$infos = array_column($temperatures, array('average', 'highest'), 'city');

$infos = array_map(function($v){return ['平均气温'=>$v[0], '最高气温'=>$v[1]];}, $infos);

print_r($infos);

輸出結果為:

Array (
    [Beijing] => Array (
        [平均气温] => 20
        [最高气温] => 28
    )
    [Shanghai] => Array (
        [平均气温] => 23
        [最高气温] => 30
    )
    [Guangzhou] => Array (
        [平均气温] => 25
        [最高气温] => 32
    )
)

三、結語

array_column()函數可以方便地從多維數組中獲取指定的一列數據,使用方法簡單明了。在實際的開發中,我們可以充分利用這個函數,並提高數組處理的效率和準確性。

以上是PHP的array_column()函數用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn