2014-04-21 3 views
0

Это мой код:Получить конкретные ключевые значения как массив из массива объекта

$a = array(
    array("a" => 1, "b" => 2), 
    array("x" => 2, "a" => 2), 
    array("d" => 100, "a" => 3, "b" => 2, "c" => 3) 
); 
$myArray = array(); 
foreach ($a as $arr) { 
    $myArray[] = $arr['a']; 
} 
print_r($myArray); 

Таким образом, я получаю

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

Есть ли другой способ сделать это без for цикла? например, использовать один из них - PHP array functions, чтобы получить тот же ответ.

Вышеприведенное правильно, но все же, если есть какой-либо другой способ сделать это, это было бы заметно! Потому что один и тот же массив $a в моем коде должен повторяться много раз. Если у меня есть лучший способ сделать это, чтобы я мог уменьшить еще одну итерацию (PHP все еще выполняет итерацию во встроенных fns, я ее не беспокою).

+1

Возможный дубликат [Есть функция для извлечения столбца из массива в PHP?] (Http://stackoverflow.com/questions/1494953/is-there-a-function-to-extract- a-column-from-an-array-in-php) –

+0

Жаль, что вы не используете PHP 5.5. У этого есть функция специально для этого. –

+0

Могу ли я узнать эту функцию, пожалуйста? – Garfield

ответ

3

Да (так как вы на PHP 5.4, array_column() не вариант),

$result = array_map(function($x) 
{ 
    return $x['a']; 
}, $a); 

Но обратите внимание, это будет по-прежнему использовать цикл внутри (т.е. в конце концов, это всегда петля)

Смежные вопросы