Halaman untuk editor yang keluar mempelajari lebih lanjut Dalam ilmu komputer, algoritme pengurutan adalah algoritme yang menempatkan elemen daftar ke dalam urutan. Urutan yang paling sering digunakan adalah urutan numerik dan urutan leksikografis, baik naik maupun turun. Penyortiran yang efisien penting untuk mengoptimalkan efisiensi algoritme lain (seperti algoritme pencarian dan penggabungan) yang memerlukan input data untuk berada dalam daftar yang diurutkan. Penyortiran juga sering berguna untuk mengkanonikalisasi data dan untuk memproduksi Show jadi itu bisa jadi salah satu yang tidak stabil, atau bahkan custom dari Zend… Saya bahkan tidak yakin apakah ini quicksort… karena quicsort mengambil elemen pivot, lalu membuat dua daftar lebih besar dan lebih kecil, lalu menerapkan penyortiran lagi ke 2 daftar tersebut…
Halo semua, Kode
$search_results saya adalah larik yang dibuat dari mencari banyak tabel berbeda dan memformat serta menggabungkan hasilnya (tabel perusahaan, tabel orang, tabel proyek, dll.). Satu-satunya hal yang saya tambahkan adalah apa yang saya sebut peringkat_pencarian yang sebenarnya hanyalah hitungan karakter sebelum string pencarian pertama kali ditemukan, menggunakan stripos(), jadi pencarian untuk 'Mark' memberikan skor 0 untuk orang bernama ' Saya kemudian mengurutkan baris ini berdasarkan search_rank ini di array search_results dengan usort di atas. (Ini adalah upaya saya untuk menambahkan relevansi pencarian ke daftar) Tapi bagaimana cara kerjanya? Usort menggunakan fungsi callback $a[]-$b[], tapi bagaimana itu membantu usort mengurutkan seluruh kumpulan data? . Jika ada yang bisa memberi penjelasan tambahan tentang bagaimana usort menggunakan callback itu untuk mengurutkan array saya, saya akan sangat tertarik untuk mendengarnya Terima kasih sebelumnya atas masukan atau umpan balik, Semoga sukses, Paulus
(Pos ini terakhir diubah. 28-09-2015, 12. 22 pagi oleh slax0r. ) Hai, Mengutip. Fungsi perbandingan harus mengembalikan bilangan bulat kurang dari, sama dengan, atau lebih besar dari nol jika argumen pertama dianggap masing-masing kurang dari, sama dengan, atau lebih besar dari yang kedua Jadi, jika operasi matematika Anda menghasilkan hasil yang kurang/sama/lebih besar dari nol, larik Anda akan diurutkan sesuai dengan itu. Jika saya mengambil contoh Anda, Anda memiliki "search_rank" dari 0 dan 3, dan jika kedua hasil dalam array Anda dalam urutan itu berarti akan mengembalikan -2 pada iterasi pertama, menukar kedua elemen tersebut. Yang dapat menyebabkan hasil yang tidak dapat diprediksi. Jika Anda ingin mengurutkan berdasarkan peringkat itu, Anda harus membandingkan nilainya, bukan menguranginya, seperti pada Kode PHP
Dengan cara ini array Anda akan diurutkan berdasarkan peringkat, dari yang memiliki nilai terendah hingga yang tertinggi, jika Anda menginginkan sebaliknya, cukup tukar "-1" dan "1" di baris kedua kode di atas Salam Situs web. http. //tomaz. lovrec. eu
Istilah "bobot" sering digunakan untuk mendeskripsikan nilai serupa dalam algoritme pengurutan, jadi saya akan menggunakannya di sini juga
Terima kasih atas penjelasannya, sangat membantu
usort pada dasarnya adalah algoritma 'merge sort' dengan jaminan kompleksitas O(n log n), di mana n adalah jumlah elemen dari sebuah array. Cara kerjanya adalah membagi array menjadi unit terkecil, jadi, 1 elemen array. Kemudian membandingkan setiap elemen dengan daftar yang berdekatan, dan menggabungkan nilainya. Ini lebih cepat daripada pengurutan gelembung pada daftar besar yang tidak disortir, tetapi jika daftar sudah diurutkan, pengurutan gelembung akan lebih cepat daripada pengurutan gabungan Situs web. http. //tomaz. lovrec. eu
Aha. Akhirnya saya mengerti. Itu tautan yang bagus, terima kasih
Yah, usort hanya berguna ketika Anda tidak peduli dengan asosiasi kunci, dan Anda memerlukan logika (ish) khusus yang kompleks untuk diurutkan, seperti dalam contoh Anda, di mana Anda menyortir berdasarkan kunci tertentu. Jika Anda hanya memiliki larik [3,5,6,4,2,1,9,8] normal, maka "asort" mungkin sudah cukup. Perhatikan semua opsi yang tersedia. http. //php. net/manual/en/array. penyortiran. php Situs web. http. //tomaz. lovrec. eu
Saya menemukan usort di daftar itu. -)
Jelas memilah ini langsung dari database akan menghasilkan hasil yang paling optimal Panduan praktis untuk IgnitedCMS - Buku segera hadir, www. ignitedcms. com
(Pos ini terakhir diubah. 11-09-2015, 08. 29 pagi oleh PaulD. Sunting Alasan. salah ketik kecil ) Hanya ingin menambahkan bahwa saya mendapati diri saya hari ini lagi menggaruk-garuk kepala pada proyek yang berbeda berpikir 'bagaimana saya akan mengurutkan array (sangat rumit) itu' ketika saya ingat usort dan melakukannya dalam dua baris kode yang sangat singkat Apa pengembalian fungsi Usort () pada kesuksesan?Fungsi usort( ) mengembalikan true saat sukses dan false saat gagal.
Apa itu Uasort di PHP?PHP. uasort() Fungsi
Bagaimana cara mengurutkan array objek berdasarkan tanggal di PHP?php function compareDates($date1, $date2){ if (strtotime($date1) < strtotime($date2)) return 1;
Apa perbedaan antara fungsi pengurutan dan Usort?Fungsi asort() mengurutkan array asosiatif dalam urutan menaik, menurut nilainya . asort(array,sortingtype); . Menentukan cara mengurutkan nilai array. |