最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 【函数分享】每日PHP函数分享(2021-2-5)

    正文概述 转载于:掘金(梦中程序员)   2021-02-05   377

    array_column — 返回数组中指定的一列

    说明:

    array_column ( array $input , mixed $column_key ,   mixed $index_key = null ) : array
    

    array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。

    **参数:
    **

    input:需要取出数组列的多维数组。如果提供的是包含一组对象的数组,只有 public 属性会被直接取出。为了也能取出 private 和 protected 属性,类必须实现 __get() 和 __isset() 魔术方法。

    column_key:需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键,也可以是属性名。也可以是null,此时将返回整个数组(配合index_key参数来重置数组键的时候,非常管用)

    index_key:作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。

    返回值:

    从多维数组中返回单列数组。

    范例:

    范例1

    <?php
    // Array representing a possible record set returned from a database
    $records = array(
        array(
            'id' => 2135,
            'first_name' => 'John',
            'last_name' => 'Doe',
        ),
        array(
            'id' => 3245,
            'first_name' => 'Sally',
            'last_name' => 'Smith',
        ),
        array(
            'id' => 5342,
            'first_name' => 'Jane',
            'last_name' => 'Jones',
        ),
        array(
            'id' => 5623,
            'first_name' => 'Peter',
            'last_name' => 'Doe',
        )
    ); 
    
    $first_names = array_column($records, 'first_name');
    print_r($first_names);
    ?>
    

    输出:

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

    范例2:

    <?php
    // Using the $records array from Example #1
    $last_names = array_column($records, 'last_name', 'id');
    print_r($last_names);
    ?>
    

    输出:

    Array(
        [2135] => Doe
        [3245] => Smith
        [5342] => Jones
        [5623] => Doe
    )
    

    范例3:

    <?php
    class User{
        public $username;
        public function __construct(string $username){
            $this->username = $username;
        }
    }
    
    $users = [
        new User('user 1'),
        new User('user 2'),
        new User('user 3'),
    ];
    print_r(array_column($users, 'username'));
    ?>
    

    输出:

    Array(
        [0] => user 1
        [1] => user 2
        [2] => user 3
    )
    

    范例4:

    <?php
    class Person{
        private $name;
        public function __construct(string $name){
            $this->name = $name;
        }
    
        public function __get($prop){
            return $this->$prop;
        }
    
        public function __isset($prop) : bool{
            return isset($this->$prop);
        }
    }
    
    $people = [
        new Person('Fred'),
        new Person('Jane'),
        new Person('John'),
    ];
    print_r(array_column($people, 'name'));
    ?>
    
    以上例程会输出:
    Array(
        [0] => Fred
        [1] => Jane
        [2] => John
    )
    

    如果不提供__isset(),会返回空数组。


    起源地下载网 » 【函数分享】每日PHP函数分享(2021-2-5)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元