Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengumpulkan Tatasusunan PHP 2D dengan Cekap mengikut Nilai Lajur?

Bagaimana untuk Mengumpulkan Tatasusunan PHP 2D dengan Cekap mengikut Nilai Lajur?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-26 02:27:09310semak imbas

How to Efficiently Group a 2D PHP Array by Column Value?

Menghimpunkan Tatasusunan 2D mengikut Nilai Lajur Dengan Cekap Menggunakan PHP

Mengumpulkan tatasusunan berbilang dimensi mengikut nilai lajur tertentu boleh meningkatkan organisasi dan pengambilan data. Walaupun tiada fungsi PHP asli untuk tugasan ini, pendekatan tersuai menggunakan gelung foreach boleh mencapai matlamat ini dengan berkesan.

Masalah:

Pertimbangkan tatasusunan 2D berikut yang mewakili baris data:

$array = [
    [
        'id' => 96,
        'shipping_no' => '212755-1',
        'part_no' => 'reterty',
        'description' => 'tyrfyt',
        'packaging_type' => 'PC',
    ],
    [
        'id' => 96,
        'shipping_no' => '212755-1',
        'part_no' => 'dftgtryh',
        'description' => 'dfhgfyh',
        'packaging_type' => 'PC',
    ],
    [
        'id' => 97,
        'shipping_no' => '212755-2',
        'part_no' => 'ZeoDark',
        'description' => 's%c%s%c%s',
        'packaging_type' => 'PC',
    ],
];

Objektifnya adalah untuk mengumpulkan elemen tatasusunan mengikut lajur 'id' dan membentuk subarrays daripada baris berkumpulan.

Penyelesaian:

Menggunakan gelung foreach:

$result = [];
foreach ($data as $element) {
    $result[$element['id']][] = $element;
}

Penjelasan:

Gelung foreach berulang melalui setiap elemen dalam tatasusunan $data. Untuk setiap elemen, ia menyemak lajur 'id' dan menggunakannya sebagai kunci dalam tatasusunan $result. Jika kekunci (id) sudah wujud, elemen baharu dilampirkan pada subbaris yang sepadan.

Output:

Anasusunan $result akan dikumpulkan berdasarkan ' lajur id', menghasilkan:

$result = [
    96 => [
        [
            'id' => 96,
            'shipping_no' => '212755-1',
            'part_no' => 'reterty',
            'description' => 'tyrfyt',
            'packaging_type' => 'PC',
        ],
        [
            'id' => 96,
            'shipping_no' => '212755-1',
            'part_no' => 'dftgtryh',
            'description' => 'dfhgfyh',
            'packaging_type' => 'PC',
        ],
    ],
    97 => [
        [
            'id' => 97,
            'shipping_no' => '212755-2',
            'part_no' => 'ZeoDark',
            'description' => 's%c%s%c%s',
            'packaging_type' => 'PC',
        ],
    ],
];

Kaedah ini menyediakan cara yang fleksibel dan cekap untuk mengumpulkan tatasusunan 2D dengan nilai lajur yang ditentukan, membolehkan pengekstrakan dan manipulasi data yang cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mengumpulkan Tatasusunan PHP 2D dengan Cekap mengikut 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