php 對二維陣列的某個鍵的值進行排序
有時候我們需要對二維陣列的某個鍵的值進行排序,這裡就是討論這個問題。我們可以使用array_multisort()這個函式。array_multisort() 函式對多個數組或多維陣列進行排序。
引數中的陣列被當成一個表的列並以行來進行排序 - 這類似 SQL 的 ORDER BY 子句的功能。第一個陣列是要排序的主要陣列。陣列中的行(值)比較為相同的話,就會按照下一個輸入陣列中相應值的大小進行排序,依此類推。
第一個引數是陣列,隨後的每一個引數可能是陣列,也可能是下面的排序順序標誌(排序標誌用於更改預設的排列順序)之一:
- SORT_ASC - 預設,按升序排列。(A-Z)
- SORT_DESC - 按降序排列。(Z-A)
隨後可以指定排序的型別:
- SORT_REGULAR - 預設。將每一項按常規順序排列。
- SORT_NUMERIC - 將每一項按數字順序排列。
- SORT_STRING - 將每一項按字母順序排列。
語法:array_multisort(array1,sorting order,sorting type,array2,array3...)
- array1:必需。規定輸入的陣列。
- sorting order:可選。規定排列順序。可能的值是 SORT_ASC 和 SORT_DESC。
- sorting type:可選。規定排序型別。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。
- array2:可選。規定輸入的陣列。
- array3:可選。規定輸入的陣列。
字串鍵名將被保留,但是數字鍵將被重新索引,從 0 開始,並以 1 遞增。可以在每個陣列後設置排序順序和排序型別。如果沒有設定,每個陣列引數會使用預設值。
下面是一個例子:
echo '二維陣列如下:'.'<br / >'; for($i=0; $i<=5; $i++) { $arr[$i]['val'] = mt_rand(1, 100); $arr[$i]['num'] = mt_rand(1, 100); } echo '<pre>'; print_r($arr); echo '</pre>'; echo '從二維陣列中抽出鍵為val,單獨成另一個數組:'.'<br / >'; foreach ($arr as $key => $row) { $vals[$key] = $row['val']; $nums[$key] = $row['num']; } echo '<pre>'; print_r($vals); echo '</pre>'; echo '對其進行排序:'.'<br / >'; array_multisort($vals, SORT_ASC, $arr); echo '<pre>'; print_r($vals); echo '</pre>'; echo '<pre>'; print_r($arr); echo '</pre>';
http://www.nowamagic.net/librarys/veda/detail/1124
相關推薦
php對一維陣列字串和數字進行排序
//Example for sorting by values for an alphanumeric array also having case-sensitive data $exampleArray1 = $exampleArray2 = arr
php 對二維陣列的某個鍵的值進行排序
有時候我們需要對二維陣列的某個鍵的值進行排序,這裡就是討論這個問題。我們可以使用array_multisort()這個函式。array_multisort() 函式對多個數組或多維陣列進行排序。 引數中的陣列被當成一個表的列並以行來進行排序 - 這類似 SQL 的 OR
PHP中如何對二維數組按某個鍵值進行排序
取出 ria var index keyword 方式 pac plain 進行 $arr=[ array( ‘name‘=>‘張三‘, ‘age‘=>28 ), array( ‘name‘
php對二維陣列中某一欄位進行排序
<?php $array = array( array('name'=>'手機','brand'=>'諾基亞','price'=>1050), array('name'=>'膝上型電腦','brand'=>'lenovo','pr
php 二維數組根據值進行排序
數組 維數 color bsp 成功 data array style arr // 先獲取要排序的值 $createTime = array_column($data, ‘create_time‘); // 排序成功 array_multisort($creat
php 對二位陣列按某個鍵值排序
<?php $arr = array( array('id'=>2,'price'=>100,'num'=>1), array('id'=>3,'price'=>123,'num'=>1), array('id'=>6,'price'=>11
對二維陣列的某個鍵名中的值進行分組
對二維陣列的某個鍵名中的值進行分組 以下為程式碼 /** * [array_group_by ph] * @param [type] $arr [二維陣列] * @param [type] $key [鍵名] * @retu
PHP對多維陣列按照某個鍵值大小進行排序
實際工作中,常常要對陣列進行排序操作,下面簡單講解一下,運用array_multisort()函式 進行對多維陣列鍵值大小進行排序。 <?php /** * 多維陣列按照某索引的值大小進行排序 * @author zhao jinhan * @email [e
php 刪除二維陣列中某個key值
/** * 根據key刪除陣列中指定元素 * @param array $arr 陣列 * @param string/int $key 鍵(key) * @return array */ private function a
PHP通過二維陣列鍵值獲取一維鍵名
有如下既定陣列: $inviteType = [ '掃碼' => [ 'type' => 0, 'point' => 5, ],
php獲取多維陣列某個特定鍵(陣列下標)的所有值,具體總結下其餘的方法
1、專案中經常會用到獲取多維陣列某個特定鍵的所有值,經常的做法是迴圈獲取,今天在網上看到一個不用迴圈獲取的辦法。 /* author: [email protected] description: 根據某一特定鍵(下標)取出一維或多維陣列的所有值;不用迴圈的理由是考慮大陣
對一個給定的二維數組按照指定的鍵值進行排序
arr pre des ray cti lse 指定 key _array public function set_s(){ $arr = [ [‘one‘ => 6,‘two‘ => 19], [‘one‘ => 36,
PHP中二維陣列轉化為對應值為一列的另一個二維陣列
一點小知識,記下來。 $arr=array( 'a'=>array( 'a', 'b', 'c' ),
php二維陣列修改鍵名
最近遇到一個問題,是關於json資料提交的時候,總是報出【object object】的錯誤,查了晚上需要資料,大部分的說法是json資料格式不規範導致的錯誤。一般建議說將dataType型別註釋掉。但是都試了一下都沒有解決。最後還懷疑是使用json_encode這個函式php版本的問題等等,都沒有解決。主要
在PHP裡.如何定義二維陣列和賦值.並且把陣列中的值填充到table中。
php: require 'smarty/libs/Smarty.class.php'; $smarty = new Smarty;//設定各個目錄的路徑,這裡是安裝的重點 $smarty->template_dir ="smarty/templates/temp
PHP 判斷二維陣列中是否存在某個陣列
function multidimensional_search($parents, $searched) { if (empty($searched) || empty($parents)) { return false; } foreach ($pa
【php】二維陣列按指定的鍵名排序
/*二維陣列按指定的鍵值排序*/ function array_sort($array,$keys,$type='asc'){ if(!isset($array) || !is_array($arr
PHP對根據某欄位對二維陣列進行排序函式
/** * 二維陣列根據欄位進行排序 * @params array $array 需要排序的陣列 * @params string $field 排序的欄位 * @params string $sort 排序順序標誌 SORT_DESC 降序;SORT
二維陣列最大值首尾相連
題目要求: 返回一個整數陣列中最大子陣列的和。 輸入一個整形陣列,數組裡有正數也有負數。 陣列中連續的一個或多個整陣列成一個子陣列,每個子陣列都有一個和。 如果陣列A[0]……A[j-1]首尾相鄰,允許A[i-1],…… A[n-1],A[0]……A[j-1]之和最大。同時返回最大子陣
應用結構體對二維陣列的大小進行快排
之前一直不會結構體,今天就簡單的學了一下,對陣列a[n][m]進行從大到小進行排序(n*m<=1e8),輸出座標,由於陣列比較大,用快排進行排序。下面就以簡單的a[3][3]為例。 #include<iostream>