查找数组中的项并将其放在首位或与第一个数组项交换


Finding entry in array and putting it first or swapping with the first array entry

我有一个充满数组的PHP数组我要做的是在这个数组中搜索所选的项并将其与数组中的第一个项交换,如果有意义的话…

对于下面的例子,我选择了Penny,所以我希望她要么走在Bob前面,要么和Bob交换位置。

我的数组是这样的:

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

我已经尝试使用array_search,但我不认为我做得正确。

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]);
    }
}

这是用来加前缀的。如果你想交换,看看@ iamnotprocrastination

的答案
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 */
}