Konvertieren Sie ein Array aus Einzelelement-Arrays in ein eindimensionales Array

Lesezeit: 2 Minuten

Benutzer-Avatar
ENTWICKLUNGEN

Ich habe diese Art von Array mit Einzelelement-Arrays:

$array = [[88868], [88867], [88869], [88870]];

Ich muss dies in ein eindimensionales Array umwandeln.

Gewünschte Ausgabe:

[88868, 88867, 88869, 88870]

Gibt es eine integrierte/native PHP-Funktionalität für diese Array-Konvertierung?

Für Ihren begrenzten Anwendungsfall reicht dies aus:

$oneDimensionalArray = array_map('current', $twoDimensionalArray);

Dies kann verallgemeinert werden, wenn die Subarrays viele Einträge dazu haben:

$oneDimensionalArray = call_user_func_array('array_merge', $twoDimensionalArray);

  • Ich verstehe “aktuell” nicht. Ich sehe auf doc php callable $callback, aber im Beispiel sehe ich keine Funktion oder Code dafür. Ich schätze einige Beispiele.

    – Abkrim

    8. November 2015 um 17:47 Uhr

  • Die Funktion @abkrim current() gibt den Wert des aktuellen Elements in einem Array zurück. zum Beispiel: $fruits = array(“Banane”, “Apfel”, “Orange”); echo current($fruits) //gibt “Banane” zurück, da der aktuelle Zeiger auf Index 0 steht, was Banane ist.

    – Rafique Mohammed

    2. Juni 2016 um 10:17 Uhr

Benutzer-Avatar
hakre

Das PHP array_mergeDokumente Funktion kann Ihr Array abflachen:

$flat = call_user_func_array('array_merge', $array);

Falls das ursprüngliche Array eine höhere Tiefe als 2 Ebenen hat, hat die SPL in PHP eine RecursiveArrayIterator Sie können es verwenden, um es zu glätten:

$flat = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)), 0);

Siehe auch: Multidimensionales Array in eindimensionales Array umwandeln

Versuchen:

$new_array = array();
foreach($big_array as $array)
{
    foreach($array as $val)
    {
        array_push($new_array, $val);
    }    
}

print_r($new_array);

$oneDim = array();
foreach($twoDim as $i) {
  $oneDim[] = $i[0];
}

Jawohl.

$values = array(array(88868), array(88867), array(88869), array(88870));
foreach ($values as &$value) $value = $value[0];

http://codepad.org/f9KjbCCb

Benutzer-Avatar
Somesh Bawane

foreach($array as $key => $value){
   //check that $value is not empty and an array
   if (!empty($value) && is_array($value)) {
      foreach ($value as $k => $v) {
         //pushing data to new array
         $newArray[] = $v;
      }
   }
}

Benutzer-Avatar
Amir Hossein

Für ein zweidimensionales Array funktioniert das auch:

array_merge(...$twoDimensionalArray)

1206030cookie-checkKonvertieren Sie ein Array aus Einzelelement-Arrays in ein eindimensionales Array

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy