2017-01-18 4 views
-1

ich ein mehrdimensionales Array von dem Format haben:Array Karte, abflachen und ungesetzt auf einem einzigen mehrdimensionalen Array

Array 
(
[0] => Array 
    (
     [course_prefix] => AERO 
     [0] => AERO 
     [course_number] => 101 
     [1] => 101 
    ) 

[1] => Array 
    (
     [course_prefix] => AERO 
     [0] => AERO 
     [course_number] => 102 
     [1] => 102 
    ) 

[2] => Array 
    (
     [course_prefix] => AERO 
     [0] => AERO 
     [course_number] => 201 
     [1] => 201 
    ) 
) 

Und ich bin versucht, drei Vorgänge auszuführen:

  1. ungesetzt Alle Elemente mit der [0] und [1] -Tasten,
  2. die [course_prefix] und [course_number] Werte in jedem Subarray,
  3. Flatten zu einem einzigen Array Kombinieren

So dass das Endergebnis ist

Array 
(

"AERO 101", 

"AERO 102", 

"AERO 201" 

) 

Ich verstehe, dass array_map zwei verschiedene Arrays kombinieren können, und dass unset Elemente entfernt, aber wie kann ich die Operationen ausführen, wenn alles in der gleichen mehrdimensionales Array ist - z.B Schalte Elemente nicht auf oberster Ebene und kombiniere Werte?

+1

Beginnen Sie mit Ihrer Datenbank nur ein assoziatives Array zurück zu modifizieren holen, nicht beide –

+2

Warum Sie nicht nur nicht erstellen, um die '0', '1' Schlüssel in der erster Platz? Es sieht so aus, als käme dies von einer Datenbankabfrage. Wenn Sie 'fetch_assoc' anstelle von' fetch_array' verwenden, werden nur die benannten Indizes zurückgegeben. – Barmar

+2

Sie können auch die DB-Abfrage verwenden, um die beiden Spalten für Sie auch zu kombinieren, so dass Sie es nicht in PHP tun müssen –

Antwort

0

Es ist ein einfaches array_map:

$new_array = array_map(function($row) { 
    return $row['course_prefix'] . ' ' . $row['course_number']; 
}, $array); 
Verwandte Themen