Erstellen eines mehrdimensionalen Arrays aus einem vorhandenen in PHP
In PHP ist es möglich, ein neues mehrdimensionales Array basierend auf einem vorhandenen zu erstellen . So erreichen Sie die spezifische Transformation, die Sie in Ihrer Frage beschrieben haben:
Konvertieren Sie das folgende 2D-Array:
$MainArray = 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 ], [ '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 ], [ '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 ] );
In das folgende 3D-Array:
$ConvertedArray = array( 'Machine1' => array( [ 'Job_Name' => 'WXYZ', 'Quantity' => 1000, 'Start_Date' => '2014-07-30 00:00:00', 'Completion_Date' => '2014-08-02 00:00:00', 'Labor' => 4 ], [ '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( [ '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 ] ) );
Lösung:
Verwenden Sie das folgende PHP Code:
$result = []; foreach($MainArray as $record){ $result[$record['Machine_Name']][] = $record; }
Der Code durchläuft das $MainArray und fügt ihn für jeden Datensatz dem $result-Array hinzu, wobei er den Wert des Schlüssels „Machine_Name“ als Index verwendet. Dies führt zur Erstellung des gewünschten 3D-Arrays.
Das obige ist der detaillierte Inhalt vonWie transformiere ich ein 2D-PHP-Array basierend auf dem Wert eines Schlüssels in ein 3D-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!