在 PHP 中,數(shù)組(array)是一種非常常用的數(shù)據(jù)類型。在對(duì)數(shù)組進(jìn)行操作時(shí),有時(shí)候需要對(duì)數(shù)組中的某一列(也就是二維數(shù)組中的某一個(gè)維度)進(jìn)行操作。這時(shí)候,就需要使用 php array column 函數(shù)。
該函數(shù)的語(yǔ)法格式如下:
array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
其中,$input 為輸入的數(shù)組,$column_key 為需要返回值的列名或者列數(shù),而 $index_key 則可選,用于作為返回?cái)?shù)組的鍵名。
下面舉幾個(gè)例子,更好地理解該函數(shù)的作用:
// 例子 1: $arr = array( array('id' =>1, 'name' =>'張三', 'age' =>20), array('id' =>2, 'name' =>'李四', 'age' =>22), array('id' =>3, 'name' =>'王五', 'age' =>24), ); $names = array_column($arr, 'name'); // 相當(dāng)于:$names = array('張三', '李四', '王五'); // 例子 2: $arr = array( array('id' =>1, 'name' =>'張三', 'hobbies' =>array('籃球', '游泳')), array('id' =>2, 'name' =>'李四', 'hobbies' =>array('足球', '網(wǎng)球')), array('id' =>3, 'name' =>'王五', 'hobbies' =>array('音樂(lè)', '電影')), ); $hobbies = array_column($arr, 'hobbies'); // 相當(dāng)于:$hobbies = array(array('籃球', '游泳'), array('足球', '網(wǎng)球'), array('音樂(lè)', '電影')); $hobbies = array_column($arr, 'hobbies', 'name'); /* 相當(dāng)于: $hobbies = array( '張三' =>array('籃球', '游泳'), '李四' =>array('足球', '網(wǎng)球'), '王五' =>array('音樂(lè)', '電影') ); */
總結(jié)一下,php array column 函數(shù)可以很方便地提取數(shù)組中的某一列,適用于二維數(shù)組。如果指定了 $index_key ,則返回的數(shù)組的鍵名是該值。
除此之外,還有一些需要注意的細(xì)節(jié)。比如,如果 $column_key 在某一行中不存在,則該行會(huì)被忽略。同時(shí),也需要注意將 $input 傳入一個(gè)真正的數(shù)組。如果傳入的不是數(shù)組,會(huì)產(chǎn)生 E_WARNING 錯(cuò)誤。
話說(shuō)回來(lái),在實(shí)際開(kāi)發(fā)中,有很多情況需要提取或者處理二維數(shù)組中的某一列數(shù)據(jù)。比如,需要從數(shù)據(jù)庫(kù)結(jié)果集中獲取某列,或者讀取 csv 文件中的某一列。此時(shí),php array column 函數(shù)就顯得尤為實(shí)用了。