将PHP数组中的值移到数组开头

21

我有一个类似于以下PHP数组:

0 => "red",
1 => "green",
2 => "blue",
3 => "yellow"

我想把黄色移动到索引0。我该怎么做?

编辑:我的问题是如何将任何一个元素移动到开头?我该如何将绿色或蓝色移动到索引0?这个问题不仅仅关于将最后一个元素移动到开头。


你能说一下你想让数组最终看起来像什么吗?它可以是 黄色,红色,绿色,蓝色黄色,蓝色,绿色,红色黄色,绿色,蓝色,红色,每个都有不同的处理过程。此外,它是否总是要从末尾移到前面,还是可以是任意位置移到前面? - Reese Moore
12个回答

0

如果你不总是打算将最后一个对象放在数组的开头,那么这将是最简单的方法...

$array = array('red','green','blue','yellow');
unset($array[array_search($searchValue, $array)]);
array_unshift($array, $searchValue);

-1 不处理 array_search 的返回值,即使它只用于已知在数组中的值,它仍然无法处理重复的值,并且过于复杂(如果您知道要移动哪个值,为什么还要搜索?) - griffin

0

PHP:将任何元素移动到第一位或任意位置:

$sourceArray = array(
    0 => "red",
    1 => "green",
    2 => "blue",
    3 => "yellow"
);
// set new order
$orderArray = array(
    3 => '',
    1 => '',
);
$result = array_replace($orderArray, $sourceArray);
print_r($result);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接