1. 程式人生 > >PHP對多維陣列按照某個鍵值大小進行排序

PHP對多維陣列按照某個鍵值大小進行排序

實際工作中,常常要對陣列進行排序操作,下面簡單講解一下,運用array_multisort()函式 進行對多維陣列鍵值大小進行排序。

<?php
/**
 * 多維陣列按照某索引的值大小進行排序
 * @author zhao jinhan
 * @email [email protected]
 * @web   http://www.icode100.com
 * @date  2013年12月27日16:58:13
 */
    //定義三個相同的陣列
    $arr1= array(
        '0'=>array(
            'a'=>1,
            'b'=>2,
            'c'=>3      
        ), 
        '1'=>array(
                'a'=>10,
                'b'=>7,
                'c'=>0
        ),
        '2'=>array(
                'a'=>-3,
                'b'=>2,
                'c'=>8
        ),
        '8'=>array(
                'a'=>9,
                'b'=>6,
                'c'=>5
        )
             
    );
    $arr2=$arr1;
    $arr3=$arr1;
     
    //分別按照索引a\b\c降序排列
    $arr_a=array('0'=>1,'1'=>10,'2'=>-3,'8'=>9);  //按照$arr1的某個索引(為a)生成的陣列
    $arr_b=array('0'=>2,'1'=>7,'2'=>2,'8'=>6);  //按照$arr2的某個索引(為b)生成的陣列
    $arr_c=array('0'=>3,'1'=>0,'2'=>8,'8'=>5);  //按照$arr3的某個索引(為c)生成的陣列
     
    echo "<pre>";
    array_multisort($arr_a,SORT_DESC,$arr1);
    print_r($arr1);
    array_multisort($arr_b,SORT_DESC,$arr2);
    print_r($arr2);
    array_multisort($arr_c,SORT_DESC,$arr3);
    print_r($arr3);
?>

執行結果如下:

按照(a)的大小降序: 按照(b)的大小降序: 按照(c)的大小降序:

Array
(
    [0] => Array
        (
            [a] => 10
            [b] => 7
            [c] => 0
        )

    [1] => Array
        (
            [a] => 9
            [b] => 6
            [c] => 5
        )

    [2] => Array
        (
            [a] => 1


            [b] => 2
            [c] => 3
        )

    [3] => Array
        (
            [a] => -3
            [b] => 2
            [c] => 8
        )

)

Array
(
    [0] => Array
        (
            [a] => 10
            [b] => 7
            [c] => 0
        )

    [1] => Array
        (
            [a] => 9
            [b] => 6


            [c] => 5
        )

    [2] => Array
        (
            [a] => -3
            [b] => 2
            [c] => 8
        )

    [3] => Array
        (
            [a] => 1
            [b] => 2
            [c] => 3
        )

)

Array
(
    [0] => Array
        (
            [a] => -3
            [b] => 2
            [c] => 8
        )

    [1] => Array
        (
            [a] => 9
            [b] => 6
            [c] => 5
        )

    [2] => Array
        (
            [a] => 1
            [b] => 2
            [c] => 3
        )

    [3] => Array
        (
            [a] => 10
            [b] => 7
            [c] => 0
        )

)

本文為原創作品:

相關推薦

PHP陣列按照某個大小進行排序

實際工作中,常常要對陣列進行排序操作,下面簡單講解一下,運用array_multisort()函式 進行對多維陣列鍵值大小進行排序。 <?php /** * 多維陣列按照某索引的值大小進行排序 * @author zhao jinhan * @email [e

PHP實現陣列按照某個排序的兩種解決方法

實現對多維陣列按照某個鍵值排序的兩種解決方法(array_multisort和array_sort): 第一種: array_multisort()函式對多個數組或多維陣列進行排序。 //對陣列$h

php 陣列某個進行排序

有時候我們需要對二維陣列的某個鍵的值進行排序,這裡就是討論這個問題。我們可以使用array_multisort()這個函式。array_multisort() 函式對多個數組或多維陣列進行排序。 引數中的陣列被當成一個表的列並以行來進行排序 - 這類似 SQL 的 OR

php 二位陣列某個排序

<?php $arr = array( array('id'=>2,'price'=>100,'num'=>1), array('id'=>3,'price'=>123,'num'=>1), array('id'=>6,'price'=>11

php陣列中某一欄位進行排序

<?php   $array = array(  array('name'=>'手機','brand'=>'諾基亞','price'=>1050),  array('name'=>'膝上型電腦','brand'=>'lenovo','pr

陣列某個名中的進行分組

對二維陣列的某個鍵名中的值進行分組 以下為程式碼 /**  * [array_group_by ph]  * @param  [type] $arr [二維陣列]  * @param  [type] $key [鍵名]  * @retu

php獲取陣列某個下標值

<?php function searchMultiArray(array $array, $search, $mode = 'key') { $res = array(); fo

php陣列某個排序(突然用到以往知識,算是臨時補充筆記吧)

print_r($arr);排序後Array ( [0] => Array ( [name] => 6 [age] => 21 ) [1] => Array (

php陣列刪除某個相同的陣列

<?php $arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ),

php陣列某個排序

function arrSort($arr,$field,$sort='asc'){$newArr = $sortArr = [];foreach($arr as $key=>$value){$newArr[$key] = $value[$field];}if($sor

php 刪除二陣列某個key

/** * 根據key刪除陣列中指定元素 * @param array $arr 陣列 * @param string/int $key 鍵(key) * @return array */ private function a

PHP 過濾陣列中的空

/** * array_filter_recursive 清除多維數組裡面的空值 * @param array $array * @return array * @author liuml * @DateTime 2018/12/3 11:27 */ function

php陣列中,某相同的項合併,重組資料(不用再愁postgres中無mysql中的group_concat()功能)

對陣列$array重組: $array = array( array('id'=>1,'name'=>'aa','pwd'=>'12'), array('i

php獲取陣列某個特定(陣列下標)的所有,具體總結下其餘的方法

1、專案中經常會用到獲取多維陣列某個特定鍵的所有值,經常的做法是迴圈獲取,今天在網上看到一個不用迴圈獲取的辦法。 /* author: [email protected] description: 根據某一特定鍵(下標)取出一維或多維陣列的所有值;不用迴圈的理由是考慮大陣

PHP array_multisort陣列個數組排序

PHP對一維陣列排序,可能大家都很清楚,主要有以下幾個: sort() 對陣列排序 rsort() 對陣列逆向排序 asort()  保持索引關係 arsort() 逆向排序,並保持索引關係 ksort() 按鍵名排序 krsort() 按鍵名逆向排序 usort() 使用

C程式設計--指標(用 “ 函式 ” 陣列進行操作)

用指向陣列的指標做函式的引數 問題描述 有一個班,3個學生,各4門課,計算總平均分以及第n個學生的成績。 程式碼實現 #include<stdio.h> void average(float *p,int n);//

C程式設計--指標(陣列進行輸出操作)

在陣列中: *(a+i)和 a[i] 等價 在二維陣列中: 含義 表示形式 a[i][j] 的值 a[i][j]、*(a[i]+j)、 *( *(a+i)+j)

處理二陣列, 按照某個欄位合併重複的,其餘欄位中部分欄位保留,部分相加

  //處理二維陣列, 按照某個欄位合併重複的,其餘欄位中部分欄位保留,部分相加 public function deal_erwei_arr(){ $param = array( array ( 'hykno'

陣列的理解

1.我們知道陣列名就是指標常量。下面我們來介紹陣列名的作用和用法 A.  int a[3]; 這是一個一維陣列 a:表示陣列首元素的地址。0x1000 &a:表示對一維陣列的陣列名取地址等於

陣列名、指向陣列的指標和指標陣列的理解

  今天新開的部落格,有點小激動。。。。。。聽說要成為一個好的程式設計師必須要寫部落格,雖然不太明白為什麼,但就當寫日記好了。。。 寫之前先#define WORD '我的內心是崩潰的' 這詞目測在這