2010-12-16 11 views
0

ein bisschen ein Brainfart Nachdem hier, ich habe eine Reihe bekam, die wie folgt aussieht:PHP Entfernen überflüssig Arrays von Arrays

Array ( 
[0] => Array ('fruit' => 'orange',) 
[1] => Array ('fruit' => 'apple',) 
) 

annnnnnnnd es hat so zu Ende:

Array ( 
[0] => 'orange' 
[1] => 'apple' 
) 

Wie mache ich das?

Antwort

3

Sie array_map verwenden können und array_shift

$array = array_map('array_shift', $array); 

oder nur eine Schleife über sie:

foreach($array as $key=>$value) { 
    $array[$key] = array_shift($value); 
} 

Update:array_shift zu verwenden ist viel besser, wenn Sie immer den ersten Wert erhalten möchten oder wenn die Subarrays enthalten sowieso nur einen Wert ...

Wenn Sie eine kompliziertere haben icierte Struktur, z.B. mehr Elemente in den Sub-Arrays, dann wollen Sie grundsätzlich flatten your array.

+0

nicht 'extract' existiert bereits in dem PHP-Kern? –

+0

@Jacob Relkin: True .... lass es mich umbenennen. –

+0

array_map ('reset' $ array); hat den Trick gemacht! – onoe

0

Wenn der Schlüssel nicht immer gleich ist (das heißt, wenn es nicht immer Frucht ist), könnten Sie dies tun:

<?php 
$source = array( 
    0 => array ('fruit' => 'orange',) 
    1 => array ('fruit' => 'apple',) 
);  

$destination = array(); 

foreach($source as $source_array) 
{ 
    foreach($source_array as $value) 
    { 
     $destination[] = $value; 
    } 
} 
?>