2011-11-04 64 views
0

enter image description here邏輯在PHP和數組排序

我想這種邏輯在我的腳本集成,但我真的不能得到很好的搶解決這個或發現,將執行此任何搜索功能..

我想做一個代碼片段,按照$ onca的值的順序排列一個數組。 $ onca是一個隨機變化的變量,其可能的值由數組$ oncMail中的元素組成。每當$ onca變爲一個新的值我希望數組通過獲取數組中的新變量的位置來自我排序,並將其與舊值的位置交換,以使新值成爲數組中的第一個值和舊值去舊值數組中的索引位置。更有意義我已附加邏輯處理的圖象..

回答

0

每當的$onca的值發生變化,則使用array_search找到相應的元素並與第一個交換它:

$array = range(0, 10); 
$onca = 3; 

print_r($array); // starting array 
$key = array_search($onca, $array, true); 
reset($array); // so that key() below works as intended, no questions asked 
$firstKey = key($array); 
if ($key !== false && $key !== $firstKey) { 
    $temp = $array[$firstKey]; 
    $array[$key] = $temp; 
    $array[$firstKey] = $onca; 
} 
print_r($array); // final array 

See it in action

+0

我很抱歉,但即時通訊在大規模混亂的世界.... $ oncMail是數組名。 $ oncMail = array(email1,email2,email3,email4,email5); 該數組沒有鍵......它只是一個具有元素的普通數組。 – Bulvak

+0

@Nadal:將'$ array'重命名爲'$ oncMail'並不令人困惑,我希望。 – Jon

+0

OOOOOOOOO GOT IT !!!所以關鍵只是索引,你沒有重新命名密鑰得到它!非常感謝,這真的有幫助! – Bulvak