如何在PHP 中將2D 數組轉換為3D 數組
您有一個現有的2D 數組,其中包含不同機器的作業資訊.任務是將此數組轉換為 3D 數組,按機器名稱分組。
所需的輸出是一個 3D 數組,其中鍵是機器名稱,每個機器名稱包含一個作業記錄數組。作業記錄包含以下欄位:
Job_Name Quantity Start_Date Completion_Date Labor
PHP 程式碼解:
要將 2D 陣列轉換為 3D 數組,可以使用下列PHP程式碼:
$result = []; foreach ($MainArray as $record) { $result[$record['Machine_Name']][] = $record; }
解釋:
foreach 循環遍歷 $MainArray 中的每筆記錄。對於每筆記錄,它會檢查 Machine_Name 字段,並將該記錄新增至 $result 數組中對應的機器數組。
如果機器名稱不作為 $result 數組中的鍵存在,則會建立它並記錄將添加到該鍵下的數組中。
範例:
給出以下內容$MainArray:
[0] => [ '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] => [ '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] => [ '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 ]
$result 陣列的輸出將是:
[Machine1] => [ [ '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] => [ [ 'Job_Name' => 'ABCD', 'Quantity' => 1500, 'Start_Date' => '2014-08-08 00:00:00', 'Completion_Date' => '2014-08-14 00:00:00', 'Labor' => 2 ] ]
這個新的3D 陣列可用來存取按機器名稱分組的作業記錄。
以上是如何以機器名稱將 2D PHP 陣列分組為 3D 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!