php關聯陣列排序(快速排序)

2021-08-27 06:03:24 字數 1166 閱讀 9800

好吧,我承認最近我跟快速排序幹上了,各種測試編寫快速排序程式,現在就用php實現快速排序,跟之前文章不同,這次php的快排是能解決實際需要的。

有這樣一種情況,php裡面的關聯陣列,如果下面這樣的陣列資料:

$array = array (

array (

'name' => "xiao",

'age' => 3

),array (

'name' => 'wang',

'age' => 1

),array (

'name' => 'chen',

'age' => 2

) );

我們要對陣列針對age欄位進行排序,php自帶的函式,無論是那種sort,顯然都不能滿足我們的需求,因此我們可以自己寫乙個快速排序**,很快的實現我們的要求

php裡面是沒有指標存在的,所以當想要引用傳遞的時候,我們不能跟c**一樣,直接這樣寫quicksort(int *a, int begin, int end),而是要使用php的&運算子,將陣列的位址傳遞跟快速排序函式,這樣就能在php裡實現引用傳遞而不是值傳遞

quicksortprocess ( $array, 0, count ( $array ) - 1 );

print_r ( $array );

/** * description:快速排序中獲取中樞點的位置

*/function quickpartition(&$array, $left, $right)

if ($left < $right)

while ( $left < $right && $array [$left] ['age'] <= $stand ['age'] )

if ($left < $right) }

// 3.獲取中樞點位置

$array [$left] = $stand;

return $left;

}/**

* description:快速排序主流程函式

*/function quicksortprocess(&$array, $begin, $end)

}

我在專案上就用到了這個快速排序,挺開心的,不枉這個10月1假期花了n天ac快速排序的c**

php通過asort 給關聯陣列按照值排序的方法

php通過asort 給關聯陣列按照值排序,和sort的區別是,sort為陣列中的單元賦予新的鍵名。原有的鍵名將被刪除。nums array 程式設計客棧 o 5,two 2,three 1 asort nums foreach nums as key val www.cppcns.com 本文標題...

php關聯陣列和索引陣列差別

關聯陣列 沒有明確的索引鍵,預設從0開始作為索引鍵。temp arr array temp arr 0 已經在別處買到 temp arr 1 商品不符合需求 按print f 列印陣列 array 0 已經在別處買到 1 商品不符合需求 2 太高 3 不想買了 4 賣家沒有交易記錄 5 其他原因 轉...

1215 關聯陣列

一 陣列變數的限制 在前面講的陣列變數中,可以通過下標訪問其中的元素。例如,下列語句訪問陣列 array 的第三個元素 scalar array 2 雖然陣列很有用,但它們有乙個顯著缺陷,即很難記住哪個元素存貯的什麼內容。假如我們來寫乙個程式計算某檔案中首字母大寫的單詞出現的次數,用陣列來實現就比較...