Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah)

青灯夜游
Lepaskan: 2023-03-12 07:56:02
asal
8966 orang telah melayarinya

Dalam artikel sebelumnya "PHP Dalam Pembelajaran Tatasusunan: Cara Memintas Serpihan Elemen (Dua Kaedah) ", kami memperkenalkan cara memintas tatasusunan dan mengembalikan serpihan elemen tatasusunan separa Dua kaedah. Kali ini kita meneruskan kajian tatasusunan PHP dan bercakap tentang kaedah menyusun elemen tatasusunan dua dimensi Rakan-rakan yang berminat boleh belajar Ketahui lebih lanjut~

→Syor yang berkaitan: Ringkasan siri pembelajaran tatasusunan PHP (terus dikemas kini~)

Kami mengetahui tentang perkara ini sebelum Terdapat beberapa kaedah pengisihan untuk tatasusunan dimensi Anda tahu bahawa PHP mempunyai banyak fungsi terbina dalam untuk melaksanakan pengisihan menurun dan pengisihan menaik bagi tatasusunan satu dimensi. Jadi adakah tatasusunan dua dimensi juga mempunyai fungsi terbina dalam untuk melaksanakan pengisihan?

Jawapannya ialah: Ya! PHP mempunyai fungsi array_multisort() terbina dalam untuk mengisih tatasusunan dua dimensi. Di bawah ini kami memperkenalkan kepada anda dua kaedah untuk menyusun tatasusunan dua dimensi menggunakan fungsi array_multisort().

Kaedah 1: foreach loop array_multisort() fungsi

<?php
$data = array(
  array(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
    // 取得列的列表
    foreach ($data as $key => $row)
    {
        $ID[$key]  = $row[&#39;id&#39;];
        $FirstName[$key] = $row[&#39;first_name&#39;];
				$LastName[$key] = $row[&#39;last_name&#39;];
    }

    array_multisort($ID, SORT_ASC, $data);

var_dump($data);
?>
Salin selepas log masuk

Analisis kod:

  • Gunakan foreach loop untuk Letakkan data dalam medan yang sama dan gunakan var_dump($ID), var_dump($FirstName), var_dump($LastName) untuk mencuba mengeluarkan data dalam setiap medan:

    Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah)

  • Gunakan array_multisort($ID, SORT_ASC, $data) Isih dalam tertib menaik mengikut medan lajur "id" dalam tatasusunan dua dimensi $data.

Jadi hasil keluarannya ialah:

Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah)

Dan jika anda ingin mengisih mengikut tertib menurun berdasarkan id, tetapkan yang kedua parameter fungsi kepada SORT_DESC Itu sahaja:

array_multisort($ID, SORT_DESC, $data);
Salin selepas log masuk

Hasil keluaran:

Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah)

Jika anda ingin mengisih berdasarkan nama belakang, hanya tetapkan parameter pertama fungsi Untuk tatasusunan $LastName,

array_multisort($LastName, SORT_DESC, $data);
Salin selepas log masuk

Hasil keluaran:

Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah)

Mari kita lihat fungsi array_multisort():

array_multisort() fungsi mengembalikan tatasusunan yang diisih. Pengguna boleh memasukkan satu atau lebih tatasusunan dan fungsi akan mengisih tatasusunan pertama, kemudian tatasusunan yang lain, dan jika dua atau lebih nilai adalah sama, ia akan mengisih tatasusunan seterusnya. Sintaksnya adalah seperti berikut:

array_multisort(array1,sorting order,sorting type,array2,array3...)
Salin selepas log masuk

Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah)

Kaedah 2: array_column() function array_multisort() function

Dalam kaedah 1 , kami Adalah agak rumit untuk menggunakan gelung foreach untuk mendapatkan data medan yang sama. Malah, anda boleh menggunakan fungsi array_column() untuk mencapai operasi ini. Fungsi array_column() boleh mengembalikan nilai lajur tunggal dalam tatasusunan input.

<?php
$data = array(
  array(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
//根据字段id对数组$data进行升序排列
$key = array_column($data,&#39;id&#39;);
array_multisort($key,SORT_ASC,$data);

var_dump($data);
?>
Salin selepas log masuk

Hasil keluaran:

Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah)

Jika anda ingin mengisih mengikut medan mana, gantikan parameter kedua fungsi array_column($data,&#39;id&#39;) dengan medan itu ( nilai kunci). Contohnya, jika anda ingin mengisih mengikut tertib menurun berdasarkan medan "first_name", anda boleh:

$key = array_column($data,&#39;first_name&#39;);
array_multisort($key,SORT_DESC,$data);
Salin selepas log masuk

Hasil keluaran:

Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah)

Mari kita lihat di bawah fungsi array_column():

array_column() mengembalikan nilai lajur tunggal dalam tatasusunan input. Format sintaks ialah:

array_column(array,column_key,index_key);
Salin selepas log masuk

Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah)

Nilai pulangan: Mengembalikan tatasusunan, nilai tatasusunan ialah nilai satu lajur dalam tatasusunan input.

Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →Tutorial video php

Akhir sekali, saya mengesyorkan tutorial video percuma tentang tatasusunan PHP: Penjelasan video fungsi tatasusunan fungsi PHP, datang dan pelajari!

Atas ialah kandungan terperinci Bagaimana untuk mengisih tatasusunan dua dimensi dalam pembelajaran tatasusunan PHP (2 kaedah). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!