In PHP, is there a function that returns an array made up of the value of a key from an array of associative arrays?

前端 未结 8 1210
梦谈多话
梦谈多话 2020-12-08 14:44

I\'m sure this question has been asked before, my apologies for not finding it first.

The original array:

[0] => Array
    (
        [categoryId]          


        
相关标签:
8条回答
  • 2020-12-08 15:40

    There's no built-in function for this, but it's usually referred as "pluck".

    0 讨论(0)
  • 2020-12-08 15:43

    Mapping is what you need:

    $input = array(
        array(
            'categoryId' => 1,
            'eventId' => 2,
            'eventName' => 3,
            'vendorName' => 4,
        ),
        array(
            'categoryId' => 5,
            'eventId' => 6,
            'eventName' => 7,
            'vendorName' => 8,
        ),
        array(
            'categoryId' => 9,
            'eventId' => 10,
            'eventName' => 11,
            'vendorName' => 12,
        ),
    );
    
    $result = array_map(function($val){
        return $val['categoryId'];
    }, $input);
    

    Or creating a function you wanted:

    function get_values_from_a_key_in_arrays($key, $input){
        return array_map(function($val) use ($key) {
            return $val[$key];
        }, $input);
    };
    

    and then using it:

    $result = get_values_from_a_key_in_arrays('categoryId', $array);
    

    It will work in PHP >= 5.3, where anonymous callbacks are allowed. For earlier versions you will need to define callback earlier and pass its name instead of anonymous function.

    0 讨论(0)
提交回复
热议问题