深入array multisort排序原理的詳解

2022-10-06 13:06:10 字數 1973 閱讀 3975

複製** **如下:

php$www.cppcns.comdata = array('volume' => 67, 'edition' => 2);

$data = array('volume' => 86, 'edition' => 1);

$data = array('volume' => 85, 'edition' => 6);

$data = array('volume' => 98,www.cppcns.com 'edition' => 2);

$data = array('volume' => 86, 'edition' => 6);

$data = array('volume' => 67, 'edition' => 7);

?>

複製** **如下:

<?php

$a = array(1,2,3);

$b = array(3);

// 將資料根據 volume 降序排列,根據 edition 公升序排列

// 把 $data 作為最後乙個引數,以通用鍵排序

array_multisort($a, $b, $data);//陣列一維個數不同

var_dump( $data);

?>

上面這個測試**提示陣列不一致的個數

warning: array_mul程式設計客棧tisort(): array sizes are inconsistent in g:\www\test\index.php on line 15

再看複製** **如下:

<?php

$data = array('volume' => 67, 'edition' => 2);

$data = array('volume' => 86, 'edition' => 1);

$data = array('volume' => 85, 'edition' => 6);

$data = array('volume' => 98程式設計客棧, 'edition' => 2);

$data = array('volume' => 86, 'edition' => 6);

$data = array('volume' => 67, 'edition' => 7, 3, 4,4);//二維個數不同

?>

複製** **如下:

<?php

$a = array(11,2,3,4,5,6);

$b = array(3,3,3,3,3,3);

//從結果中看到對應11的array(67,7,3,4,4)按相同順序出現了;

// 將資料根據 volume 降序排列,根據 edition 公升序排列

// 把 $data 作為最後乙個引數,以通用鍵排序

array_multisort($a, $b, $data);

var_dump( $a,$data);

?>

從上面的結果可以得知:

陣列引數必須有相同的一維個數;

然後每個陣列的對應位置(注意不是相同key,而是從自然位置對應著,如$a(1=>4),對應$b(99=&yzgzvlngt;4) 的4,因為它們的位置都是第乙個,而非key(1,99)的對應關係),對應位置中的值就像穿在乙個個互相平等竹桿上一樣,穿在上面的其中乙個值需要調整位置時,就會導致同一"竹桿"上的其它值出現垂直移動.

類:$a           $b          $c

4=>7    8=>10       '999' => 0

9=>9   0=>1       999=>9

0=> 2   9=> 3    9999=>7

----------------------

如果出現按$a的7與9對換,也就會帶動$b的10與1對換 $c的0與9對換.

所以關係就像上面的三個陣列,同色的在同一"陣線上",其中乙個換,大家要一起換位置.

本文標題: 深入array multisort排序原理的詳解

本文位址:

PHP函式補完 array multisort

有時候我們需要對二維陣列的某個鍵的值進行排序,這裡就是討論這個問題。我們可以使用array multisort 這個函式。array multisort 函式對多個陣列或多維陣列進行排序。引數中的陣列被當成乙個表的列並以行來進行排序 這類似 sql 的 order by 子句的功能。第乙個陣列是要排...

深入篇 decltype深入分析

int fun int main void double tempa 3.0 const double ctempa 5.0 const double ctempb 6.0 const double const cptrtempa ctempa 1.dcltempa推斷為const double 保...

koa redux middleware 深入解析

對於現有的一些框架比如koa,express,redux,都需要對資料流進行一些處理,比如koa,express的請求資料處理,包括json.stringify,logger,或者一些安全相關的處理都需要在資料流中進行,還比如redux的整個資料的修改,支援中介軟體來擴充套件使用者對於資料修改的支援...