Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengubah Tatasusunan PHP 2D kepada Tatasusunan 3D Berdasarkan Nilai Lajur?

Bagaimanakah Saya Boleh Mengubah Tatasusunan PHP 2D kepada Tatasusunan 3D Berdasarkan Nilai Lajur?

Patricia Arquette
Patricia Arquetteasal
2024-12-10 07:36:09318semak imbas

How Can I Transform a 2D PHP Array into a 3D Array Based on a Column's Values?

Mencipta Tatasusunan Baharu daripada Tatasusunan Sedia Ada dalam PHP

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

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.

Pelaksanaan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn