Rumah pembangunan bahagian belakang tutorial php php对二维数组按指定键值key排序示例代码_php技巧

php对二维数组按指定键值key排序示例代码_php技巧

May 17, 2016 am 08:52 AM
tatasusunan dua dimensi

复制代码 代码如下:

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);
Salin selepas log masuk

将输出:

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
    )

)
Salin selepas log masuk

为了不破坏原有的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;
}
Salin selepas log masuk
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara mengira jumlah elemen dalam lajur dalam tatasusunan dua dimensi menggunakan fungsi array_sum dalam PHP Cara mengira jumlah elemen dalam lajur dalam tatasusunan dua dimensi menggunakan fungsi array_sum dalam PHP Jun 26, 2023 pm 12:45 PM

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

Bagaimana untuk menukar tatasusunan php dua dimensi kepada tatasusunan satu dimensi Bagaimana untuk menukar tatasusunan php dua dimensi kepada tatasusunan satu dimensi Aug 03, 2023 am 11:14 AM

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.

Bagaimana untuk mendapatkan nilai lajur tertentu dalam tatasusunan dua dimensi menggunakan fungsi array_column dalam PHP Bagaimana untuk mendapatkan nilai lajur tertentu dalam tatasusunan dua dimensi menggunakan fungsi array_column dalam PHP Jun 26, 2023 pm 01:32 PM

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 Bagaimana untuk membalikkan tatasusunan dua dimensi dalam php Dec 26, 2022 am 09:38 AM

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 2D kepada tatasusunan 1D dalam PHP Bagaimana untuk menukar tatasusunan 2D kepada tatasusunan 1D dalam PHP Jul 07, 2023 pm 06:42 PM

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

Adakah php mempunyai tatasusunan dua dimensi? Adakah php mempunyai tatasusunan dua dimensi? Aug 03, 2023 pm 02:45 PM

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 PHP 5.5: Cara menggunakan fungsi array_column untuk mengekstrak lajur tertentu dalam tatasusunan dua dimensi Penjelasan terperinci tentang fungsi PHP 5.5: Cara menggunakan fungsi array_column untuk mengekstrak lajur tertentu dalam tatasusunan dua dimensi Jul 30, 2023 am 08:45 AM

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$

Dalam pengaturcaraan C, bekerja dengan tatasusunan 2D pada masa jalan Dalam pengaturcaraan C, bekerja dengan tatasusunan 2D pada masa jalan Sep 13, 2023 pm 11:29 PM

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++){&amp

See all articles