今天我們來介紹一下 Php 中的一個非常有用的函數—— array_pluck。array_pluck 用于提取多維數組中某個屬性的值,返回值是單個維度的數組,非常方便實用。下面我們就通過多個實例來詳細介紹它的使用方法。
在使用 array_pluck 之前,先來了解一下多維數組是如何組成的。比如說,以下代碼就是一個包含了多個學生信息的多維數組:
$students = [ ['name' =>'Tom', 'age' =>18, 'class' =>'A'], ['name' =>'Jack', 'age' =>20, 'class' =>'B'], ['name' =>'Lucy', 'age' =>19, 'class' =>'C'] ];如果我們想要提取出這個數組中所有學生的名字,可以使用 array_pluck 這個函數,實現的方式非常簡單:
$names = array_pluck($students, 'name'); print_r($names);執行后,便能得到以下輸出:
Array ( [0] =>Tom [1] =>Jack [2] =>Lucy )這里解釋一下,array_pluck 里第一個參數是要提取的多維數組,第二個參數表示要提取的屬性名,這里就是 name。得到的結果是一個一維數組,包含了所有學生的名字。 除了上面的例子,array_pluck 還可以用于獲取對象的屬性值。比如說,以下代碼就是一個包含多個人員信息的對象數組:
$persons = [ new Person('Tom', 18, 'Male'), new Person('Lily', 20, 'Female'), new Person('May', 19, 'Female') ];如果我們要提取出所有人員的性別,可以這樣寫:
$genders = array_pluck($persons, 'gender'); print_r($genders);得到的輸出如下:
Array ( [0] =>Male [1] =>Female [2] =>Female )這里的 Person 代碼可見下方:
class Person { public $name, $age, $gender; public function __construct($name, $age, $gender) { $this->name = $name; $this->age = $age; $this->gender = $gender; } }更進一步,當我們的數組元素不是標準的多維數組或對象數組時,array_pluck 也依然有效。比如說,以下代碼是一個包含商品名稱和價格的普通數組:
$products = [ 'iPhone' =>6999, 'iPad' =>3999, 'Macbook' =>9999 ];如果我們要提取出所有商品的價格,同樣可以使用 array_pluck 這個函數,代碼如下:
$prices = array_pluck($products, 0); print_r($prices);得到的輸出如下:
Array ( [0] =>6999 [1] =>3999 [2] =>9999 )這里的 0 表示取數組中的第一個元素。 當然,還有更多精細的手段來利用 array_pluck 操作數據,比如說,也可以同時從一個元素中提取多個屬性。比如說,以下代碼表示一個描述菜品的數組: ``` $dishes = [ ['name' =>'魚香肉絲', 'price' =>20, 'sales' =>200], ['name' =>'宮保雞丁', 'price' =>25, 'sales' =>180], ['name' =>'紅燒獅子頭', 'price' =>30, 'sales' =>160] ]; ``` 若要提取出所有菜品的名稱和價格,可以這樣寫: ``` $infos = array_pluck($dishes, ['name', 'price']); print_r($infos); ``` 輸出如下: ``` Array ( [0] =>Array ( [name] =>魚香肉絲 [price] =>20 ) [1] =>Array ( [name] =>宮保雞丁 [price] =>25 ) [2] =>Array ( [name] =>紅燒獅子頭 [price] =>30 ) ) ``` 以上就是 array_pluck 的常用用法,大家可以在實踐中進一步了解。對于需要從數組中提取某些屬性的情況,array_pluck 是一個比較高效、便捷的方式。