Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menaikkan tatasusunan dua dimensi dalam php

Bagaimana untuk menaikkan tatasusunan dua dimensi dalam php

王林
王林asal
2023-05-19 13:50:08652semak imbas

Ketahui secara mendalam tentang pembangunan PHP dan terdapat banyak masalah biasa yang perlu diselesaikan. Sesuatu yang asas seperti menyusun tatasusunan dua dimensi dalam tertib menaik. Dalam artikel ini, kami akan meneroka cara mengisih tatasusunan 2D dalam tertib menaik dalam PHP.

Tatasusunan dua dimensi ialah jenis tatasusunan PHP yang mengandungi set nilai tersusun. Ia mempunyai lebih banyak dimensi daripada tatasusunan satu dimensi dan boleh disarangkan dalam tatasusunan lain. Ini menjadikan tatasusunan 2D sesuai untuk memproses sejumlah besar data.

Dalam PHP, kita boleh mengisih tatasusunan menggunakan fungsi isih, yang mengisih tatasusunan mengikut jadual kod ASCII dalam tertib menaik, dan sebaliknya dalam tertib menurun. Untuk tatasusunan satu dimensi, mudah diisih menggunakan fungsi isihan, tetapi untuk tatasusunan dua dimensi, pemprosesan tambahan diperlukan.

Untuk mengisih tatasusunan dua dimensi, kita perlu menentukan "kunci" untuk mengisih setiap subtatasusunan. Kunci ialah atribut dalam tatasusunan yang digunakan untuk perbandingan dan pengisihan. Dalam kes ini, "kunci" boleh menjadi sebarang atribut tatasusunan, seperti nama, tarikh, harga atau ID, dsb.

Cara mudah ialah menggunakan fungsi PHP array_column() yang mencari nama kunci tertentu dalam tatasusunan dua dimensi. Fungsi ini mengembalikan tatasusunan yang mengandungi semua nilai untuk kunci yang ditentukan. Pilih kekunci yang ingin kita isih daripadanya, dan kita boleh menggunakan fungsi array_multisort() untuk mengisih kunci dalam tertib menaik.

Berikut ialah kod sampel untuk beroperasi pada tatasusunan, yang menggunakan array_column() dan array_multisort() untuk mengisih tatasusunan dua dimensi dalam tertib menaik.

<?php
$employees = array(
  array('name' => 'John Smith', 'age' => 28, 'salary' => 3000),
  array('name' => 'Anna Black', 'age' => 33, 'salary' => 2500),
  array('name' => 'Peter Brown', 'age' => 24, 'salary' => 2200),
  array('name' => 'Emma Rose', 'age' => 29, 'salary' => 3500),
);

// 排序前的数组
echo "排序前:<br>";
print_r($employees);

// 获取所有员工的工资
$salary = array_column($employees, 'salary');

// 按升序排序员工工资
array_multisort($salary, SORT_ASC, $employees);

// 排序后的数组
echo "排序后:<br>";
print_r($employees);
?>

Dalam kod sampel di atas, kami mula-mula menentukan tatasusunan dua dimensi yang mengandungi data seperti nama pekerja, umur dan gaji. Kami menggunakan fungsi print_r() untuk memaparkan keputusan sebelum mengisih. Seterusnya, kami menggunakan fungsi array_column() untuk mendapatkan nilai gaji semua pekerja dan menyimpannya dalam pembolehubah. Akhir sekali, kami menggunakan fungsi array_multisort() untuk mengisih pembolehubah ini dalam tertib menaik dan mengisih tatasusunan asal menggunakan susunan yang sama. Kami menggunakan fungsi print_r() sekali lagi untuk memaparkan hasil yang diisih.

Kod sampel ini akan mengeluarkan keputusan berikut:

排序前:
Array
(
    [0] => Array
        (
            [name] => John Smith
            [age] => 28
            [salary] => 3000
        )

    [1] => Array
        (
            [name] => Anna Black
            [age] => 33
            [salary] => 2500
        )

    [2] => Array
        (
            [name] => Peter Brown
            [age] => 24
            [salary] => 2200
        )

    [3] => Array
        (
            [name] => Emma Rose
            [age] => 29
            [salary] => 3500
        )

)

排序后:
Array
(
    [0] => Array
        (
            [name] => Peter Brown
            [age] => 24
            [salary] => 2200
        )

    [1] => Array
        (
            [name] => Anna Black
            [age] => 33
            [salary] => 2500
        )

    [2] => Array
        (
            [name] => John Smith
            [age] => 28
            [salary] => 3000
        )

    [3] => Array
        (
            [name] => Emma Rose
            [age] => 29
            [salary] => 3500
        )

)

Seperti yang ditunjukkan di atas, melalui kerjasama fungsi array_column() dan array_multisort(), kita boleh mengisih tatasusunan dua dimensi dengan mudah dalam menaik pesanan.

Untuk jenis pengisihan lain, cuma tukar parameter pertama fungsi array_multisort() untuk menggunakan atribut yang berbeza.

Dalam PHP, terdapat banyak fungsi dan kaedah menarik yang boleh memudahkan beban kerja kita. Menguasai pengetahuan ini akan membantu anda memproses sejumlah besar data dengan lebih cekap, sekali gus meningkatkan keupayaan pembangunan PHP anda.

Atas ialah kandungan terperinci Bagaimana untuk menaikkan tatasusunan dua dimensi dalam php. 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