PHP如何使用array_column()函数?用法示例

2021年4月2日11:28:00 发表评论 817 次浏览

array_column()是PHP中的内置函数, 用于从输入数组中的单个列返回值。

语法如下:

array array_column($input_array, $column_number, $index_key);

参数:在这三个参数中, 两个是必需的, 一个是可选的。让我们看一下参数。

  1. $ input_array(强制性):此参数引用原始多维数组, 我们要从中提取特定列的所有值。
  2. $ column_number(必填):此参数引用需要返回的值的列。此值可以是列的整数键, 也可以是关联数组的字符串键名或属性名。返回完整的数组或对象也可以为NULL。
  3. $ index_key(可选):这是一个可选参数, 是指要用作输出中返回数组的索引/键的列。此值可以是列的整数键, 也可以是字符串键名。

返回类型:如语法所示, array_column()函数的返回类型为array。也就是说, 该函数返回一个数组, 该数组包含一个由column_number标识的输入数组的单个列中的值。可选地, 还可以提供index_key, 以通过输入数组的index_key列中的值索引返回的数组中的值。

例子:

Input : 
      array(
        array(
            'roll' => 5, 'name' => 'Akash', 'hobby' => 'Cricket', ), array(
            'roll' => 1, 'name' => 'Rishav', 'hobby' => 'Football', ), array(
            'roll' => 3, 'name' => 'Anand', 'hobby' => 'Chess', ), )
  
      $column_number = 'hobby'  , $index_key = 'roll'
Output : 
      Array
      (
         [5] => Cricket
         [1] => Football
         [3] => Chess
         [4] => Cards
         [2] => Basketball
      )

在上面的示例中, array_column()函数用于获取键值为" name"的列的值, 并且输出数组中的这些值都与从原始数组中键" roll"的值中获取的键一起存储。

下面的程序说明了具有所有三个参数的array_column():

<?php
// PHP code to illustrate the working of array_column
function Column($details){
     $rec = array_column($details, 'name' , 'roll' );
     return $rec;
}
  
// Driver Code
$details = array(
     array(
         'roll' => 5, 'name' => 'Akash' , 'hobby' => 'Cricket' , ), array(
         'roll' => 1, 'name' => 'Rishav' , 'hobby' => 'Football' , ), array(
         'roll' => 3, 'name' => 'Anand' , 'hobby' => 'Chess' , ), array(
         'roll' => 4, 'name' => 'Gaurav' , 'hobby' => 'Cards' , ), array(
         'roll' => 2, 'name' => 'Rahim' , 'hobby' => 'Basketball' , ), );
print_r(Column($details));
?>

输出如下:

Array
(
    [5] => Akash
    [1] => Rishav
    [3] => Anand
    [4] => Gaurav
    [2] => Rahim
)

我们也可以忽略第三个参数index_key。然后, 在这种情况下, 输出数组中的列将按照数组中给出的线性方式进行索引。下面是说明该问题的PHP程序:

<?php
// PHP code to illustrate the working of array_column
function Column($details){
     $rec = array_column($details, 'hobby' );
     return $rec;
}
  
// Driver Code
$details = array(
     array(
         'roll' => 5, 'name' => 'Akash' , 'hobby' => 'Cricket' , ), array(
         'roll' => 1, 'name' => 'Rishav' , 'hobby' => 'Football' , ), array(
         'roll' => 3, 'name' => 'Anand' , 'hobby' => 'Chess' , ), array(
         'roll' => 4, 'name' => 'Gaurav' , 'hobby' => 'Cards' , ), array(
         'roll' => 2, 'name' => 'Rahim' , 'hobby' => 'Basketball' , ), );
print_r(Column($details));
?>

输出如下:

Array
(
    [0] => Cricket
    [1] => Football
    [2] => Chess
    [3] => Cards
    [4] => Basketball
)

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: