Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.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,假设我有一个数组: $people[0] = "Bob"; $people[1] = "Sally"; $people[2] = "Charlie"; $people[3] = "Clare"; if (in_array("Charlie", $people)) { //move Charlie to first item in array } 让Charlie找到数组中的第一项最有效的方法是什么 $results = array_search('Charlie', $people)

假设我有一个数组:

$people[0] = "Bob";
$people[1] = "Sally";
$people[2] = "Charlie";
$people[3] = "Clare";

if (in_array("Charlie", $people)) {
    //move Charlie to first item in array
}
让Charlie找到数组中的第一项最有效的方法是什么

$results = array_search('Charlie', $people);
if ($results !== FALSE) { then
    $people[$results] = $people[0]; // swap the original 'first' person to where Charlie was.
    $people[0] = 'Charlie';
}
现在,假设您不关心保留数组原始顺序的其余部分。如果你想把查理移到前面,把中间的东西都换到一个位置,那完全是另一回事了

$people[0] = "Bob"; $people[1] = "Sally"; $people[2] = "Charlie"; $people[3] = "Clare";

$personToSearch = "Charlie";

$personIndex = array_search($personToSearch, $people);

if ($personIndex !== false)
{
  unset($people[$personIndex]);
  $people = array_merge(array($personToSearch), $people);
}
现在,假设您不关心保留数组原始顺序的其余部分。如果要将Charlie移到前面,并将中间的所有内容移到一个插槽中,那完全是另一回事。

可以使用将元素前置到数组中

$people[0] = "Bob"; $people[1] = "Sally"; $people[2] = "Charlie"; $people[3] = "Clare";

$personToSearch = "Charlie";

$personIndex = array_search($personToSearch, $people);

if ($personIndex !== false)
{
  unset($people[$personIndex]);
  $people = array_merge(array($personToSearch), $people);
}
$pos = array_search("Charlie", $people);
if($pos !== FALSE){
  $item = $people[$pos];
  unset($people[$pos]);
  array_unshift($people, $item);
}
可以使用将元素前置到数组

$pos = array_search("Charlie", $people);
if($pos !== FALSE){
  $item = $people[$pos];
  unset($people[$pos]);
  array_unshift($people, $item);
}
最有效的方法是什么 把Charlie带到第一个项目 阵列

$results = array_search('Charlie', $people);
if ($results !== FALSE) { then
    $people[$results] = $people[0]; // swap the original 'first' person to where Charlie was.
    $people[0] = 'Charlie';
}
最有效的方法是什么 把Charlie带到第一个项目 阵列

$results = array_search('Charlie', $people);
if ($results !== FALSE) { then
    $people[$results] = $people[0]; // swap the original 'first' person to where Charlie was.
    $people[0] = 'Charlie';
}

lol有理由这么做吗?lol有理由这么做吗?我认为OP想要删除“Charlie”,将其作为第一个元素,并将其他所有元素向下推。你这么认为。。。也许你想得太多了!我认为OP想要删除“Charlie”,把它作为第一个元素,然后把其他元素都推下去。你这么认为。。。也许你想得太多了!是的,我发现取消换档也是最好的选择。谢谢火箭!是的,我发现取消换档也是最好的选择。谢谢火箭!