Php 在数组中查找条目并将其放在第一位或与第一个数组条目交换
我有一个充满数组的PHP数组,我想做的是在这个数组中搜索所选的条目,如果有意义的话,将其与数组中的第一个条目交换 因此,在下面的例子中,我选择了Penny,所以我希望她要么先于Bob,要么与Bob交换位置 我的数组如下所示:Php 在数组中查找条目并将其放在第一位或与第一个数组条目交换,php,Php,我有一个充满数组的PHP数组,我想做的是在这个数组中搜索所选的条目,如果有意义的话,将其与数组中的第一个条目交换 因此,在下面的例子中,我选择了Penny,所以我希望她要么先于Bob,要么与Bob交换位置 我的数组如下所示: $people = array( array('Bob', 'Wilson'), array('Jill', 'Thompson'), array('Penny', 'Smith'), array('Hugh', 'Carr') ); 我尝试过使用array_search
$people = array(
array('Bob', 'Wilson'),
array('Jill', 'Thompson'),
array('Penny', 'Smith'),
array('Hugh', 'Carr')
);
我尝试过使用array_search,但我认为我做得不对
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 */
}
这是预编的。如果你想交换,请参阅@iamnotdelaying的答案,这在逻辑上是可能的,但你尝试过什么?你需要帮助来建立逻辑吗?你不能使用array_search来搜索它,因为只有当你直接使用一个包含两个字符串“Penny”和“Smith”的数组作为搜索参数时,它才能找到一些东西。
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]);
}
}