[PHP] array_flatten()
Freitag, 7. Dezember 2007 - 16:56 Uhr
Wir haben vor einem guten Jahr in Info 1 mal flatten() in tScheme gecodet – und hier ist nun das PHP-Äquivalent. Erwartet ein Array, gibt ein Array zurück.
Funktion:
<?php
function array_flatten ( $array ) {
$result = array ();
foreach ($array as $element) {
if (is_array ($element)) {
$result = array_merge($result, array_flatten($element));
} else {
array_push($result, $element);
}
}
return $result;
}
?>
Verwendung:
<?php
$a = array ( 0, 1, array ( 2, 3, array ( 4 ) ), 5 );
print_r($a);
$f = array_flatten ($a);
print_r($f);
?>
Ausgabe:
Array ( [0] => 0 [1] => 1 [2] => Array ( [0] => 2 [1] => 3 [2] => Array ( [0] => 4 ) ) [3] => 5 )
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
Flattr ist ein Micro-Payment-Dienst für Web-Inhalte.
Mehr zu Flattr findest Du im Beitrag Was ist Flattr?
Ähnliche Beiträge
- Google Chart API: Simple Encoding in PHP 19. Dezember 2009
- PHP: Einen Artikel in WordPress einfügen 9. September 2008
- HTTP/1.1 301 Moved Permanently 1. September 2007
- [PHP] Performancemessung: explode / substr / preg_match 17. September 2007
- Tabellenlayout gefällig? 1. April 2008

Hey, hier bloggt Jan Papenbrock. Er studiert Wirtschaftsinformatik an der Uni Münster. Nebenbei erstellt er Webseiten und interessiert sich für SEO.
Am 8. November 2008 um 14:32 Uhr
Kompakt und übersichtlich. Allerdings sind das Erzeugen eines neuen Result-Arrays bei jedem Aufruf der Funktion, sowie array_push und array_merge an der Stelle kostspielig. Performanter ist diese Variante:
function array_flatten2(array $array, array &$result = array()) { foreach ($array as $element) { if (is_array($element)) { array_flatten2($element, $result); } else { $result[] = $element; } } return $result; }