Mencipta Tatasusunan Berbilang Dimensi daripada Tatasusunan Sedia Ada dalam PHP
Dalam PHP, adalah mungkin untuk mencipta tatasusunan multidimensi baharu berdasarkan tatasusunan sedia ada . Berikut ialah cara untuk mencapai transformasi khusus yang anda nyatakan dalam soalan anda:
Tukar tatasusunan 2D berikut:
$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 ] );
Ke dalam tatasusunan 3D berikut:
$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 ] ) );
Penyelesaian:
Gunakan PHP berikut kod:
$result = []; foreach($MainArray as $record){ $result[$record['Machine_Name']][] = $record; }
Kod ini berulang melalui $MainArray dan untuk setiap rekod, menambahkannya pada tatasusunan $result, menggunakan nilai kekunci 'Machine_Name' sebagai indeks. Ini menghasilkan penciptaan tatasusunan 3D yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Tatasusunan PHP 2D menjadi Tatasusunan 3D Berdasarkan Nilai Kunci?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!