Есть ли в PHP функция, которая возвращает массив, состоящий из значений ключа из массива ассоциативных массивов?

Я уверен, что этот вопрос уже задавали раньше, прошу прощения, что не нашел его первым.

Исходный массив:

[0] => Array
    (
        [categoryId] => 1
        [eventId] => 2
        [eventName] => 3
        [vendorName] => 4
    )

[1] => Array
    (
        [categoryId] => 5
        [eventId] => 6
        [eventName] => 7
        [vendorName] => 8
    )

[2] => Array
    (
        [categoryId] => 9
        [eventId] => 10
        [eventName] => 11
        [vendorName] => 12
    )

Я надеялся получить результат из: print_r(get_values_from_a_key_in_arrays('categoryId', $array));

[0] => 1
[1] => 5
[2] => 9

Я просто ищу что-то более чистое, чем писать свою собственную функцию на основе foreach. Если foreach это ответ, у меня уже есть это.

Редактировать: Я не хочу использовать жестко запрограммированный ключ, я просто показывал пример вызова решения. Спасибо! ^_^

Быстрое решение для PHP 5.3:

private function pluck($key, $data) {
    return array_reduce($data, function($result, $array) use($key) {
        isset($array[$key]) && $result[] = $array[$key];
        return $result;
    }, array());
}
25
задан Wil Moore III 24 January 2014 в 03:31
поделиться