php对二维数组按指定键值key排序示例代码_php技巧
function array_sort($array, $key){
if(is_array($array)){
$key_array = null;
$new_array = null;
for( $i = 0; $i $key_array[$array[$i][$key]] = $i;
}
ksort($key_array);
$j = 0;
foreach($key_array as $k => $v){
$new_array[$j] = $array[$v];
$j++;
}
unset($key_array);
return $new_array;
}else{
return $array;
}
}
PHP二维数组按键值排序
PHP 中 array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联键名保持不变,但数字键名会被重新索引。输入数组被当成一个表的列并以行来排序,第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
但是如果需要排序的数组是一个二维数组,需要按照数组的键值排序,如下面这个二维数组,需要按照sort键名来排序,那么array_multisort() 就无法直接实现了:
$data[5] = array('volume' => 67, 'edition' => 2); $data[4] = array('volume' => 86, 'edition' => 1); $data[2] = array('volume' => 85, 'edition' => 6); $data[3] = array('volume' => 98, 'edition' => 2); $data[1] = array('volume' => 86, 'edition' => 6); $data[6] = array('volume' => 67, 'edition' => 7); // 准备要排序的数组 foreach ($data as $k => $v) { $edition[] = $v['edition']; } array_multisort($edition, SORT_ASC, $data); print_r($data);
将输出:
Array ( [0] => Array ( [volume] => 86 [edition] => 1 ) [1] => Array ( [volume] => 67 [edition] => 2 ) [2] => Array ( [volume] => 98 [edition] => 2 ) [3] => Array ( [volume] => 85 [edition] => 6 ) [4] => Array ( [volume] => 86 [edition] => 6 ) [5] => Array ( [volume] => 67 [edition] => 7 ) )
为了不破坏原有的key,写了一个排序函数,仅支持二维数组。
/** * 根据数组中的某个键值大小进行排序,仅支持二维数组 * * @param array $array 排序数组 * @param string $key 键值 * @param bool $asc 默认正序 * @return array 排序后数组 */ function arraySortByKey(array $array, $key, $asc = true) { $result = array(); // 整理出准备排序的数组 foreach ( $array as $k => &$v ) { $values[$k] = isset($v[$key]) ? $v[$key] : ''; } unset($v); // 对需要排序键值进行排序 $asc ? asort($values) : arsort($values); // 重新排列原有数组 foreach ( $values as $k => $v ) { $result[$k] = $array[$k]; } return $result; }

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

Dalam pengaturcaraan PHP, fungsi array_sum ialah fungsi yang sangat praktikal yang boleh mengira jumlah semua elemen dalam tatasusunan. Walau bagaimanapun, apabila kita perlu mengira jumlah lajur unsur dalam tatasusunan dua dimensi, kita mungkin menghadapi beberapa masalah. Artikel ini akan memperkenalkan cara menggunakan fungsi array_sum dalam PHP untuk mengira jumlah elemen dalam lajur tatasusunan dua dimensi. Pertama, kita perlu memahami konsep tatasusunan dua dimensi. Tatasusunan dua dimensi ialah tatasusunan yang mengandungi berbilang tatasusunan, yang boleh dianggap sebagai jadual. Setiap tatasusunan mewakili jadual

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.

Dalam pengaturcaraan PHP, kita selalunya perlu beroperasi pada tatasusunan, termasuk mendapatkan nilai lajur yang ditentukan. PHP menyediakan fungsi yang sangat mudah - array_column, yang boleh membantu kami mendapatkan nilai lajur yang ditentukan dalam tatasusunan dua dimensi dengan cepat. Artikel ini akan memperkenalkan cara menggunakan fungsi array_column. Penggunaan asas fungsi array_column: array_column(array$array,mixed$column_key[

Bagaimana untuk membalikkan tatasusunan dua dimensi dalam php: 1. Buat fail sampel php 2. Tentukan tatasusunan dua dimensi 3. Balikkan tatasusunan melalui fungsi "array_reverse($a,true);" "print_r" untuk mencetak Hanya terbalikkan tatasusunan dua dimensi.

Bagaimana untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam PHP Dalam pembangunan PHP, anda sering menghadapi senario di mana anda perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk membantu anda menyelesaikan tugasan ini dengan mudah. Kaedah 1: Gunakan lintasan gelung Kaedah yang paling mudah dan paling mudah ialah menggunakan gelung untuk melintasi tatasusunan dua dimensi dan menambah setiap elemen kepada tatasusunan satu dimensi yang baharu. Berikut ialah contoh kod menggunakan kaedah ini: functionflattenArray($array){$result

PHP mempunyai tatasusunan dua dimensi, yang merupakan jenis tatasusunan khas yang boleh menyimpan tatasusunan lain sebagai elemen Pengisytiharan dan akses tatasusunan dua dimensi Anda boleh menggunakan fungsi "tatasusunan" untuk mencipta dua-. tatasusunan dimensi dan menggunakan pengindeksan atau perkaitan, sebagai elemennya, sangat berguna dalam pengaturcaraan praktikal dan boleh digunakan untuk memproses pelbagai struktur data yang kompleks.

Penjelasan terperinci tentang fungsi PHP5.5: Cara menggunakan fungsi array_column untuk mengekstrak lajur tertentu dalam tatasusunan dua dimensi Dalam versi PHP5.5, fungsi array_column telah diperkenalkan lajur data daripada tatasusunan dua dimensi. Ini berguna apabila bekerja dengan jumlah data yang besar, membolehkan kami mendapatkan data yang kami perlukan dengan cepat. Sintaks asas fungsi array_column adalah seperti berikut: arrayarray_column(array$

Soalan Tulis program C yang menggunakan kompilasi masa jalan untuk mengira jumlah dan hasil darab semua elemen dalam tatasusunan dua dimensi. Penyusunan atau permulaan masa jalan penyelesaian juga dikenali sebagai peruntukan dinamik. Memperuntukkan memori pada masa pelaksanaan (runtime) dipanggil peruntukan memori dinamik. Fungsi calloc() dan malloc() menyokong peruntukan memori dinamik. Fungsi calloc() dan malloc() menyokong peruntukan memori dinamik. p>Dalam atur cara ini, kami akan mengira jumlah semua elemen tatasusunan 2D dan hasil darab semua elemen pada masa jalan. Logik digunakan untuk mengira jumlah semua elemen dalam tatasusunan 2D - printf("Sumarrayis:");for(i=0;i<2;i++){&
