2012-04-10 2 views
1

У меня есть следующая структура массива;Простая манипуляция массивом

Array(
[0] => Array(
     [product_name] => Silver 
    ) 

[1] => Array(
     [product_name] => Gold 
    ) 

[2] => Array(
     [product_name] => Ride 
    ) 

[3] => Array(
     [product_name] => Bronze 
    ) 
) 

Мне нужно, чтобы это было так, но я не могу понять, как это сделать. Я не могу реализовать дополнительную функцию, она должна быть чистой и аккуратной.

Array(
    [0] => Silver 
    [1] => Gold 
    [2] => Ride 
    [3] => Bronze 
) 

Благодарим за предоставленную помощь. :)

ответ

2

Я считаю, что это работает:

iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)), false); 
+0

Спасибо alix. Я понятия не имею, что это делает, но код, над которым я работаю, очень ООП, так что это больше похоже на этот стиль. Благодарю. –

1
foreach($firstarray as $var) { 
    $secondarray[] = $var["product_name"]; 
} 
+0

Не можете ли вы просто оставить '$ i' и использовать' $ secondarray [] = $ var ["product_name"]; '? – Yaniro

+0

Также это можно сделать без второго массива – BenOfTheNorth

+0

Thats true, спасибо за предложение – Dion

1

Если [product_name] является имя ключа, то это будет работать:

foreach($array as $i=>$a) 
    $array[$i] = $a['product_name']; 
2
foreach($array as &$value) 
{ 
    $value = $value['product_name']; 
} 
+1

Ваше решение, вероятно, самое простое. Но я предлагаю «unset $ value», чтобы избежать проблем при повторном использовании имени переменной. – ANisus

0
$array = array(
    array("product_name" => "Silver"), 
    array("product_name" => "Gold"), 
    array("product_name" => "Ride"), 
    array("product_name" => "Bronze") 
); 

Вы можете сделать сонижение следующим образом:

foreach($array as &$pos) $pos = $pos["product_name"]; 

Так что, если вы делаете print_r ($ массива) результат будет:

Array 
(
    [0] => Silver 
    [1] => Gold 
    [2] => Ride 
    [3] => Bronze 
) 

Надеется, что это поможет вам.

2

Я бы использовал array_map personnaly!

$array = array_map(function($product){return $product['product_name'];}, $array); 
Смежные вопросы