Seorang pengguna menghadapi cabaran semasa cuba mengubah tatasusunan 2 dimensi ($MainArray) menjadi 3- tatasusunan dimensi ($ConvertedArray). Pengguna bertujuan untuk mengumpulkan kerja berdasarkan nama mesin mereka dan mengekalkan kunci asal mereka.
Penyelesaian kepada cabaran ini terletak pada penggunaan fungsi PHP yang dipanggil array_column. Fungsi ini membolehkan anda mengekstrak lajur tertentu daripada tatasusunan berbilang dimensi. Begini cara untuk menggunakannya dalam kes ini:
$machineNames = array_column($MainArray, 'Machine_Name'); $uniqueMachines = array_unique($machineNames); $ConvertedArray = []; foreach ($uniqueMachines as $machineName) { $ConvertedArray[$machineName] = array_filter($MainArray, function ($job) use ($machineName) { return $job['Machine_Name'] === $machineName; }); }
Kod ini mencapai transformasi yang diingini dengan mengulangi nama mesin yang unik dan mengumpulkan kerja yang sewajarnya ke dalam $ConvertedArray. Hasilnya ialah tatasusunan baharu dengan nama mesin sebagai kunci dan tatasusunan kerja berkaitan sebagai nilai.
Kod yang disediakan boleh dilaksanakan dengan mudah dalam skrip PHP anda untuk mencapai output yang diingini. Tatasusunan asal dan ditukar boleh dicetak untuk pengesahan:
echo '<pre class="brush:php;toolbar:false">'; print_r($MainArray); echo ''; echo '
'; print_r($ConvertedArray); echo '';
Ini akan mengeluarkan tatasusunan 2 dimensi asal dan tatasusunan 3 dimensi yang baru dibuat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Tatasusunan PHP 2D kepada Tatasusunan 3D Berdasarkan Nilai Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!