2010-07-19 22 views
0

首先我是這個網站的新手,這是一個很大的幫助,所以在此先感謝您的意見。PHP如何移動數組的子集來做類似asort的事情?

我想在比較它們後像移動一樣移動數組值的子集。

以下是我有:

$array[name] = "name"; 
$array[date] = "date"; 
$array[item1] = 7; 
$array[item2] = 16; 
$array[item3] = 3; 
$array[item4] = 16; 
$array[item5] = 2; 
$array[item6] = 10; 
$array[author] = "author"; 
$array[location] = "location'; 

我想通過這樣的「16」的值在子集的最終排序值的itemsN值進行排序,而不是「16其他的值「在子集的開始。

所以那種我想直到結束後:

$array[name] = "name"; 
$array[date] = "date"; 
$array[item1] = 7; 
$array[item2] = 3; 
$array[item3] = 2; 
$array[item4] = 10; 
$array[item5] = 16; 
$array[item6] = 16; 
$array[author] = "author"; 
$array[location] = "location'; 
+1

能$陣列 - >項目僅僅是一個數組?這樣你可以使用PHP的本地函數進行排序。 – HoLyVieR 2010-07-19 19:35:35

+0

看起來更像對象屬性而不是數組 – 2010-07-19 19:43:10

+0

是的,它是一個數組。我編輯了這個問題來反映這一點。 – netefficacy 2010-07-20 18:46:24

回答

0

你的意思是要「逆向排序數組,並保持索引關係」?

arsort($array) 

或者,如果你不關心維修器材鍵/值的關聯:

rsort($array) 
+0

他想排序一個對象,而不是一個數組... – HoLyVieR 2010-07-19 19:41:49

+0

我明白了。我不得不承認,稱他的對象「數組」,並想對其成員進行排序讓我感到困惑。 – 2010-07-19 20:28:51

+0

對不起,這是一個數組。編輯這個問題來反映這一點。我想要移動值的子集,而不是排序整個數組。 – netefficacy 2010-07-20 19:09:37

0

ArrayObject有一個asort()方法:

$array->asort(); 
foreach ($array as $key => $value) { 
    echo $key . ' - ' . $value . "\n"; 
} 

輸出:

1 - 2 
2 - 2 
3 - 1 
4 - 1 
5 - 1 
+0

是的,但它也會對鍵進行排序 – Gordon 2010-07-19 20:01:58

相關問題