Erstellen eines Arrays aus einem anderen Array in PHP [closed]

Lesezeit: 3 Minuten

Erstellen eines Arrays aus einem anderen Array in PHP closed
MaverickPablo

Ich habe ein Array, das so aussieht. Dies ist ein zweidimensionales Array.

$MainArray = Array
(
    [0] => Array
        (
            [Job_Name] => WXYZ
            [Quantity] => 1000
            [Machine_Name] => Machine1
            [Start_Date] => 2014-07-30 00:00:00
            [Completion_Date] => 2014-08-02 00:00:00
            [Labor] => 4
        )
    [1] => Array
        (
            [Job_Name] => ABCD
            [Quantity] => 1500
            [Machine_Name] => Machine2
            [Start_Date] => 2014-08-08 00:00:00
            [Completion_Date] => 2014-08-14 00:00:00
            [Labor] => 2
        )
    [2] => Array
        (
            [Job_Name] => BCDA
            [Quantity] => 1200
            [Machine_Name] => Machine1
            [Start_Date] => 2014-08-02 00:00:00
            [Completion_Date] => 2014-08-07 00:00:00
            [Labor] => 1
        )
 )

Ich möchte diese Informationen verwenden, um ein neues dreidimensionales Array zu erstellen, das so aussieht.

$ConvertedArray = Array
(
    [Machine1] => Array
        (
            [0] => Array
               (
                  [Job_Name] => WXYZ
                  [Quantity] => 1000
                  [Start_Date] => 2014-07-30 00:00:00
                  [Completion_Date] => 2014-08-02 00:00:00
                  [Labor] => 4
               )
            [1] => Array
               (
                  [Job_Name] => BCDA
                  [Quantity] => 1200
                  [Start_Date] => 2014-08-02 00:00:00
                  [Completion_Date] => 2014-08-07 00:00:00
                  [Labor] => 1
               )
         )
      [Machine2] => Array
        (
            [0] => Array
               (
                  [Job_Name] => ABCD
                  [Quantity] => 1500
                  [Machine_Name] => Machine2
                  [Start_Date] => 2014-08-08 00:00:00
                  [Completion_Date] => 2014-08-14 00:00:00
                  [Labor] => 2
               )
         )   
)

Bitte jede Hilfe dazu wäre willkommen. Ich stecke mit etwas fest und muss herausfinden, wie ich das neue Array mit diesem ursprünglichen Array erstellen kann. Im Grunde gruppiere ich also alle Jobs von jedem Computer zusammen und die Schlüssel für diese Jobs hängen davon ab, wie sie sich im ursprünglichen Array befinden. Wenn das ursprüngliche Array also einen Job mit dem Schlüssel 2 hat und kein anderer Job einen höheren Schlüssel auf dieser Maschine hat, wird es für diesen Job zum Schlüssel 0 und erstellt einen neuen Schlüssel mit diesem Maschinennamen.

Ich schätze Ihre Hilfe diesbezüglich sehr.

  • Was Sie versucht haben, um eine bestimmte Ausgabe zu erhalten, wie Sie möchten..!

    – Kausha Mehta

    18. Februar 2016 um 5:01 Uhr

  • @Mav woher wissen wir, welche Subarrays die behalten sollen Machine_Name Element in der Ausgabe? Siehe wie Machine1 Subarrays enthalten nicht die Machine_Name Elemente, doch die Machine2 Subarray tut? Dies macht Ihre Frage zu einem unklaren “Anforderungsdump”.

    – mickmackusa

    14. Dezember 2020 um 6:34 Uhr

  • Duplikat von: stackoverflow.com/q/12706359/2943403

    – mickmackusa

    14. Dezember 2020 um 13:51 Uhr

  • Beantwortet das deine Frage? Wie gruppiert man Subarrays nach einem Spaltenwert?

    – Weg

    14. Dezember 2020 um 15:23 Uhr

Erstellen eines Arrays aus einem anderen Array in PHP closed
Ravi

Verwenden Sie den folgenden Code:-

$result = [];
foreach($MainArray as $record){
 $result[$record['Machine_Name']][] = $record;
}

  • Dieses unerklärliche Snippet informiert Fibs über seine Ausgabe. Möchten Sie wissen, woran ich erkennen kann, dass Sie einfach die Ausgabe aus dem Fragentext des OP kopiert haben? Machine_Name befindet sich nur in den Daten der letzten Subarrays.

    – mickmackusa

    14. Dezember 2020 um 6:36 Uhr


  • @mickmackusa: Danke für den Hinweis. Beantwortet es vor 4 Jahren, also nicht genau die Idee, aber ja Machine_Name Schlüssel fehlte. Habe gerade die Ausgabe entfernt. Ich denke, OP wollte nur die Daten basierend auf unterscheiden Machine_Name.

    – Ravi

    14. Dezember 2020 um 9:04 Uhr

  • Jetzt müssen Sie Ihrem Snippet nur noch eine Erklärung hinzufügen. Ich verwende alte Seiten, um neue Duplikate zu schließen, aber ich kann diese Seite nicht vertrauensvoll verwenden, um Benutzer aufzuklären, weil 1. die Frage nicht 100 % klar ist und 2. die Antworten nicht erklärt werden.

    – mickmackusa

    14. Dezember 2020 um 9:14 Uhr


1646919846 745 Erstellen eines Arrays aus einem anderen Array in PHP closed
Nick

foreach ($MainArray as $value) {
    $name = $value['Machine_Name'];
    unset($value['Machine_Name']);
    $ConvertedArray[$name][] = $value;
}

988120cookie-checkErstellen eines Arrays aus einem anderen Array in PHP [closed]

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

Privacy policy