Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数组中查找条目并将其放在第一位或与第一个数组条目交换_Php - Fatal编程技术网

Php 在数组中查找条目并将其放在第一位或与第一个数组条目交换

Php 在数组中查找条目并将其放在第一位或与第一个数组条目交换,php,Php,我有一个充满数组的PHP数组,我想做的是在这个数组中搜索所选的条目,如果有意义的话,将其与数组中的第一个条目交换 因此,在下面的例子中,我选择了Penny,所以我希望她要么先于Bob,要么与Bob交换位置 我的数组如下所示: $people = array( array('Bob', 'Wilson'), array('Jill', 'Thompson'), array('Penny', 'Smith'), array('Hugh', 'Carr') ); 我尝试过使用array_search

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

因此,在下面的例子中,我选择了Penny,所以我希望她要么先于Bob,要么与Bob交换位置

我的数组如下所示:

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