2013-04-18 72 views
2

我有一個PHP數組,其中包含數組,我想要做的是在所選條目中搜索此數組,並將其與第一個條目交換陣列如果這是有道理的...查找數組中的條目並將其放入第一個或與第一個數組條目交換

因此,對於我下面的例子,我選擇了佩妮,所以我希望她在鮑勃之前或與鮑勃交換位置。

我的數組是這樣的:

$people = array(
array('Bob', 'Wilson'), 
array('Jill', 'Thompson'), 
array('Penny', 'Smith'), 
array('Hugh', 'Carr') 
); 

我一直在使用array_search嘗試,但我不認爲我做正確。

+0

http://stackoverflow.com/questions/5312879/moving-array-element-to-top-in-php –

+0

它可能在邏輯上,但你有什麼試過?你需要幫助制定邏輯? – dreamweiver

+0

你不能使用array_search,因爲如果你直接使用一個包含兩個字符串「Penny」和「Smith」作爲搜索參數的數組,就只能找到一些東西。 – CBroe

回答

1
for ($i = count($array) - 1; $i > 0; $i--) { 
    if ($array[$i][0] == $first_name) { // Or by whatever you want to search? in_array...? 
     $searched_array = array_splice($array, $i, 1); 
     array_unshift($array, $searched_array[0]); 
    } 
} 

這是預謀。如果你想交換,請參閱@IAmNotProcrastinating的答案

+0

這是完美的,非常感謝! –

1
function swap (&$ary,$fromIndex,$toIndex=0) 
{ 
    $temp=$ary[$toIndex]; 
    $ary[$toIndex]=$ary[$fromIndex]; 
    $ary[$fromIndex]=$temp; 
} 
foreach ($elements as $key => $element) { 
    /* do the search, get the $key and swap */ 
} 
相關問題