2017-11-22 2 views
-1

Sir,PHP Multidimensional Array Umordnen

Ich bin verwirrt, was genau Titel dieser Probleme sein sollte. Unten ist mein Problem

I wie unten

 
Array 
(
    [0] => Array 
     (
      [0] => 2017-11-01 
      [1] => 9 Am 
     ) 

    [1] => Array 
     (
      [0] => 2017-11-02 
      [1] => 07 Pm 
     ) 

    [2] => Array 
     (
      [0] => 2017-11-03 
      [1] => 11 Pm 
     ) 

    [3] => Array 
     (
      [0] => 2017-11-04 
      [1] => 03 Pm 
     ) 

    [4] => Array 
     (
      [0] => 2017-11-01 
      [1] => 11 Am 
     ) 

    [5] => Array 
     (
      [0] => 2017-11-02 
      [1] => 05 Pm 
     ) 

) 

Jetzt ein mehrdimensionales Array, ich einzigartiges Datum machen will neben Zeit in ein anderes Array sein sollte. ...

 
Array 
(
    [0] => Array 
     (
      [0] => 2017-11-01 
      [1] => Array 
       (
        [0] => 9 Am 
        [1] => 11 Am 
       ) 

     ) 

    [1] => Array 
     (
      [0] => 2017-11-02 
      [1] => Array 
       (
        [0] => 07 Pm 
        [1] => 05 Pm 
       ) 

     ) 

    [2] => Array 
     (
      [0] => 2017-11-03 
      [1] => Array 
       (
        [0] => 11 Pm 
       ) 

     ) 

    [3] => Array 
     (
      [0] => 2017-11-04 
      [1] => Array 
       (
        [0] => 03 Pm 
       ) 

     ) 

) 

Vielen Dank im Voraus ich es wie unten wollen ..

Grüße,

Anwar

+0

Was ist der Zweck? Möchtest du nicht, dass das Datum die Schlüssel ist, anstatt sie zu verschachteln? – kchason

+0

Vielen Dank für die schnelle Antwort. Eigentlich möchte ich Datum in 0 Index und Zeiten in 1 Index in einem anderen Array –

+0

halten Auch die Einfügung würde jedes Mal eine Schleife erfordern ... das scheint wirklich ineffizient für die Erstellung und den Zugriff. Was hast du bisher versucht? – kchason

Antwort

1

Etwas dieser Art und Weise den Trick tun sollten ...

Es ist nicht annähernd der schnellste Weg, aber es sollte Sie in Gang bringen und es ist ziemlich einfach zu lesen

// putting the times in a new array where the date is the key 

$byDate = []; 
foreach ($firstArray as [$date, $time]) { 
    $byDate[$date][] = $time; 
} 


// going thru it again to have it the way you needed it 

$newArray = []; 
foreach ($byDate as $date => $times) { 
    $newArray[] = [$date, $times]; 
} 
Verwandte Themen