2014-04-30 6 views
0

J'ai un tableau qui ressemble à ceci:php - étrange puzzle gamme

$array = array(
[0] => array([key] => val1), 
[1] => array([key] => val2), 
[2] => array([key] => val3), 
... 
) 

Je veux la faire ressembler à ceci:

$array = array(
[0] => val1), 
[1] => val2), 
[2] => val3), 
... 
) 

Il est évident que je pouvais boucle à travers le réseau et construire un nouveau tableau, mais y a-t-il un moyen plus efficace de faire ce que je décris?

+0

double possible de [Comment Aplatir un tableau Multidimensional?] (Http://stackoverflow.com/questions/1319903/how-to-flatten-a-multidimensional-array) –

+0

définir ce que vous entendez par « efficace "? – zerkms

Répondre

3

Powered by trivial connaissances bibliothèque standard:

$new_array = array_map(function($i) { 
    return $i['key']; 
}, $array); 

ou si vous utilisez PHP> = 5,5

$new_array = array_column($array, 'key'); 

ou si le nom de la clé n'est pas connue et que vous voulez juste faire tableau 2D en 1d:

$new_array = call_user_func_array('array_merge', array_map('array_values', $array)); 

Références:

2

Propulsé par this answer:

<?php 
$array = array(
    0 => array('key' => 'val1'), 
    1 => array('key' => 'val2'), 
    2 => array('key' => 'val3'), 
); 
$new_array = array(); 
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); 
foreach($it as $v) { 
    $new_array[] = $v; 
} 
print_r($new_array); 

Demo

+0

Quand quelque chose est soutenu par une démo ... ** + 1 ** –