PHP数组排序算法小结
PHP中对数组的元素进行排序,这个是很经常用到的,之前的项目中也有,而且对于几种排序我们都是用的是asort arsort 等PHP原生函数,没有自己去实现,所以就对一下的几个函数进行总结,这个会不断的进行补充,自己也可以好好的复习和总结。
/* * 插入排序(一维数组) * 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当的位置,使数列依然有序;直到待排序的数据元素全部插入完成为止。 */ function insertSort($arr){ if(!is_array($arr) ||count($arr)==0){ return $arr; } $count =count($arr); for($i=1;$i<$count;$i++){ if(isset($arr[$i])){ $tmp =$arr[$i];//获取后一个元素的值 $j =$i - 1;//获取前面的下标 while($arr[$j] >$tmp){//如果前面一个比后面一个大, 这里是从小到大 $arr[$j+1] =$arr[$j];//把小的元素和前面的对换,直到移动到合适的位置,在移动下一个 $arr[$j] =$tmp; $j--; } } } return $arr; } /* * 选择排序(一维数组) * 每一趟从待排序的数据元素中选出最小(最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 */ function selectSort($arr){ if(!is_array($arr) ||count($arr) == 0) { return $arr; } $count =count($arr); for($i=0;$i<$count;$i++){ $k =$i; for($j=$i+1;$j<$count;$j++){ if ($arr[$k] >$arr[$j]) $k =$j;//找出最小的 if ($k !=$i){ $tmp =$arr[$i]; $arr[$i] =$arr[$k]; $arr[$k] =$tmp; } } } return $arr; } /* * 冒泡排序(一维数组) * 两两比较待排序数据元素的大小,发现两个数据元素的次序相反即进行交换,直到没有反序的数据元素为止 */ function bubbleSort($array){ $count =count($array); if ($count <= 0) { return false; } for($i=0;$i<$count;$i++){ for($j=$count-1;$j>$i;$j--){ if ($array[$j] <$array[$j-1]){//比较找到的数进行交换 $tmp =$array[$j]; $array[$j] =$array[$j-1]; $array[$j-1] =$tmp; } } } return $array; } /* * 快速排序(一维数组) * */ function quickSort($array){ if (count($array) <= 1){ return $array; } $key =$array[0]; $left_arr =array(); $right_arr =array(); for ($i=1;$i<count($array);$i++){ if ($array[$i] <=$key){ $left_arr[] =$array[$i]; }else{ $right_arr[] =$array[$i]; } } $left_arr = quickSort($left_arr); $right_arr = quickSort($right_arr); return array_merge($left_arr,array($key),$right_arr); } /** * 按照元素的值进行排序 * strOrder 为排列的顺序 asc 升序 desc 降序 */ function sortByVal($arr,$strOrder='asc') { if(!is_array($arr) ||count($arr)==0) { return $arr; } $arrReturn =array(); foreach($arr as $key=>$val) { $arrKey[] =$key; $arrVal[] =$val; } $count =count($arrVal); if($count) { //创建key的顺序数组 for($key=0;$key<$count;$key++) { $arrKeyMap[$key] =$key; } //对值进行排序 for($i=0;$i<$count;$i++) { for($j =$count-1;$j>$i;$j--) { //<从小到大排列 升降在这修改 $bol =$strOrder =='asc' ?$arrVal[$j]<$arrVal[$j-1] :$arrVal[$j]>$arrVal[$j-1]; if($bol){ $tmp =$arrVal[$j]; $arrVal[$j] =$arrVal[$j-1]; $arrVal[$j-1] =$tmp; //值的冒泡排序,引起key的数组的交互 $keytmp =$arrKeyMap[$j]; $arrKeyMap[$j] =$arrKeyMap[$j-1]; $arrKeyMap[$j-1] =$keytmp; } } } if(count($arrKeyMap)) { foreach ($arrKeyMap as $val) { $arrReturn[] =$arrKey[$val]; } } return $arrReturn; } } /** * 使用原生的函数进行数组按照值进行排列 */ function arraySortByVal($arr,$keys,$type='asc'){ $keysvalue =$new_array =array(); foreach ($arr as $k=>$v){ $keysvalue[$k] =$v[$keys]; } if($type =='asc'){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k=>$v){ $new_array[$k] =$arr[$k]; } return $new_array;
对于下面的2个对于array的值进行排序的方法一个是自己实现的一个是使用了原生的PHP函数的,其实排序对于少量数据一般就单页的数据量的数据还是可以的,如果涉及到大量的数据的排序,建议可以整合到MYSQL的基础类中来进行。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menggunakan tatasusunan PHP untuk menjana dan memaparkan carta dan graf statistik PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas dengan keupayaan pemprosesan data dan penjanaan grafik. Dalam pembangunan web, kita selalunya perlu memaparkan carta dan graf statistik data Melalui tatasusunan PHP, kita boleh melaksanakan fungsi ini dengan mudah. Artikel ini akan memperkenalkan cara menggunakan tatasusunan PHP untuk menjana dan memaparkan carta dan graf statistik, serta menyediakan contoh kod yang berkaitan. Memperkenalkan fail perpustakaan yang diperlukan dan helaian gaya Sebelum bermula, kita perlu memperkenalkan beberapa fail perpustakaan yang diperlukan ke dalam fail PHP

Cara menggunakan tatasusunan PHP untuk menjana tayangan slaid dinamik dan paparan gambar Tayangan slaid dan paparan gambar adalah fungsi biasa dalam reka bentuk web dan sering digunakan dalam senario seperti karusel dan paparan galeri. Sebagai bahasa skrip sebelah pelayan yang popular, PHP mempunyai keupayaan untuk memproses data dan menjana halaman HTML dinamik, dan sangat sesuai untuk menjana tayangan slaid dinamik dan paparan gambar. Artikel ini akan memperkenalkan cara menggunakan tatasusunan PHP untuk menjana tayangan slaid dinamik dan paparan gambar, serta memberikan contoh kod yang sepadan. Sediakan data imej Mula-mula, kita perlu menyediakan satu set data laluan imej

Fungsi purata tatasusunan PHP termasuk: 1. array_sum(), yang digunakan untuk mengira jumlah semua nilai dalam tatasusunan Untuk mengira purata, anda boleh menambah semua nilai dalam tatasusunan dan kemudian membahagi dengan bilangan elemen tatasusunan; 2, array_reduce(), digunakan untuk mengulang tatasusunan dan mengira setiap nilai dengan nilai awal 3. array_mean(), digunakan untuk mengembalikan purata tatasusunan, mula-mula mengira jumlah tatasusunan, dan hitung bilangan elemen tatasusunan, kemudian Jumlahnya dibahagikan dengan bilangan elemen tatasusunan untuk mendapatkan purata.

Cara menggunakan tatasusunan PHP untuk melaksanakan log masuk pengguna dan fungsi pengurusan kebenaran Apabila membangunkan laman web, log masuk pengguna dan pengurusan kebenaran adalah salah satu fungsi yang sangat penting. Log masuk pengguna membolehkan kami mengesahkan pengguna dan melindungi keselamatan tapak web. Pengurusan kebenaran boleh mengawal kebenaran pengendalian pengguna di tapak web untuk memastikan pengguna hanya boleh mengakses fungsi yang mereka dibenarkan. Dalam artikel ini, kami akan memperkenalkan cara menggunakan tatasusunan PHP untuk melaksanakan log masuk pengguna dan fungsi pengurusan kebenaran. Kami akan menggunakan contoh mudah untuk menunjukkan proses ini. Mula-mula kita perlu mencipta

Pasangan nilai kunci tatasusunan PHP ialah struktur data yang terdiri daripada kunci dan nilai yang sepadan Kuncinya ialah pengecam elemen tatasusunan, dan nilainya ialah data yang dikaitkan dengan kunci. Ia membolehkan kami menyimpan dan mengakses data menggunakan kunci sebagai pengecam Dengan menggunakan pasangan nilai kunci, kami boleh mengendalikan dan mengurus elemen dalam tatasusunan dengan lebih mudah, menjadikan pembangunan program lebih fleksibel dan cekap.

Tatasusunan PHP ialah struktur data yang sangat biasa yang sering digunakan semasa proses pembangunan. Walau bagaimanapun, apabila jumlah data meningkat, prestasi tatasusunan boleh menjadi isu. Artikel ini akan meneroka beberapa teknik pengoptimuman prestasi untuk tatasusunan PHP dan memberikan contoh kod khusus. 1. Gunakan struktur data yang sesuai Dalam PHP, sebagai tambahan kepada tatasusunan biasa, terdapat beberapa struktur data lain, seperti SplFixedArray, SplDoublyLinkedList, dll., yang mungkin berprestasi lebih baik daripada tatasusunan biasa dalam situasi tertentu.

Terdapat beberapa cara untuk menentukan tatasusunan dalam PHP: 1. Gunakan fungsi count(), yang sesuai untuk semua jenis tatasusunan. Walau bagaimanapun, perlu diambil perhatian bahawa jika parameter yang dimasukkan bukan tatasusunan, fungsi count() akan mengembalikan 0. Gunakan fungsi sizeof(), yang lebih digunakan untuk mengekalkan keserasian dengan bahasa pengaturcaraan lain; fungsi, Dengan menggunakan gelung untuk melintasi tatasusunan, setiap kali ia dilalui, pembilang ditambah dengan 1, dan akhirnya panjang tatasusunan diperoleh. Fungsi tersuai boleh diubah suai dan dikembangkan mengikut keperluan sebenar, menjadikannya lebih fleksibel.

Cara menukar tatasusunan php daripada dua dimensi kepada tatasusunan satu dimensi: 1. Gunakan traversal gelung untuk melintasi tatasusunan dua dimensi dan tambah setiap elemen pada tatasusunan satu dimensi 2. Gunakan fungsi "array_merge" untuk menggabungkan berbilang; tatasusunan ke dalam Tatasusunan, hantar tatasusunan dua dimensi sebagai parameter kepada fungsi "array_merge" untuk menukarnya menjadi tatasusunan satu dimensi 3. Menggunakan fungsi "array_reduce", semua nilai dalam tatasusunan boleh diproses melalui fungsi panggil balik, dan akhirnya mengembalikan hasil.
