用于字符串的php搜索数组,如果找到,则将该字符串移动到数组的第一项

时间:2011-03-28 18:23:36

标签: 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送到数组中第一项的最有效方法是什么?

5 个答案:

答案 0 :(得分:3)

您可以使用array_unshift()将元素添加到数组中。

$pos = array_search("Charlie", $people);
if($pos !== FALSE){
  $item = $people[$pos];
  unset($people[$pos]);
  array_unshift($people, $item);
}

答案 1 :(得分:1)

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

答案 2 :(得分:1)

  

什么是最有效的方式   让查理成为第一个项目   数组?

$people[0] = "Charlie";

答案 3 :(得分:0)

$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';
}

现在,假设您不关心保留数组原始顺序的其余部分。如果你想将查理移到前面并将所有东西都移到一个插槽之间,这完全是另一回事。

答案 4 :(得分:0)

$position = array_search('Charlie', $people);

if ($position !== FALSE)
{
  // Remove it
  $charlie  = array_splice($people, $position, $1);
  // Stick it on the beginning
  array_unshift($people, $charlie);
}