2013-04-05 3 views
1

Якобы у меня есть массив как это:выберите только один атрибут из многомерного массива php?

$shop = array(array("name"=>"Tom", "level"=> 1.25), 
       array("name"=>"Mike","level"=> 0.75), 
       array("name"=>"John","level"=> 1.15) 
      ); 

Как сделать массив со всеми значениями имен и ключами положения theri исходного массива. Я знаю, что могу прокручивать и добавлять другой массив, но есть ли какие-то функции?

Извините, если я запутался. Мой желаемый результат будет:

array(0=>"Tom",1=>"Mike",2=>"John"); 

Так что базовый выбор в sql.

+0

Можете ли вы показать желаемый выход? –

+0

А теперь я понял. Работа над ответом. – botenvouwer

+0

в массиве мы не можем иметь один и тот же ключ дважды. –

ответ

-2

Вы можете с foreach

<?php 

$shop = array(array("name"=>"Tom", "level"=> 1.25), 
       array("name"=>"Mike","level"=> 0.75), 
       array("name"=>"John","level"=> 1.15) 
      ); 

$newar = array(); 
foreach($shop as $subarr){ 
    $newar[] = $subarr['name']; 
} 

print_r($newar); 

?> 
+0

Вы должны, вероятно, проверить вещи, прежде чем публиковать их. ^^ Кроме того, автор сказал, что они новы, как его зацикливать и искали альтернативное решение. – Jon

+0

Все должно быть так. Ps Я тестировал, и теперь это работает. – botenvouwer

+0

Конечно, это так - это практически то же самое, что и ответ Deepu, просто удалив ключ. ^^ – Jon

0
$shop = array(array("name"=>"Tom", "level"=> 1.25), 
       array("name"=>"Mike","level"=> 0.75), 
       array("name"=>"John","level"=> 1.15) 
      ); 
$newArr = array(); 

foreach($shop as $key=>$val){ 
$newArr[$key] = $val['name']; 
} 
print_r($newArr); 
+0

То же, что и мой ответ, почему давайте голосовать !? – botenvouwer

+0

@sirwilliam это не то же самое, что и у вас - например, вы не можете пройти через '$ shop ['name']', поскольку этот индекс не существует. – Jon

+0

Исправлена ​​ошибка, из-за которой были головорезы! – botenvouwer

5

На PHP 5.3.0 вы можете использовать это:

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

print_r($result); 

до 5.3.0 вы можете использовать create_function для обратного вызова.

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