将第一个单词移到最后

时间:2010-11-22 11:20:00

标签: php arrays foreach

我们有名字的数组:

array(
Robin Hood,
Little John,
Maid Marion,
Friar Tuck,
Will Scarlet
)

每个项目中的第一个单词应移到此项目的末尾。

我们应该得到这个:

array(
Hood Robin,
John Little,
Marion Maid,
Tuck Friar,
Scarlet Will
)

我们怎么做?

如果我们使用foreach()

,效果会更好

感谢。

5 个答案:

答案 0 :(得分:5)

如果,您只需要在第一个空格之前移动部件(在explode()中设置$limit = 2以仅获得两个部分):

function func($n) {
        list($first, $rest) = explode(' ', $n, 2);
        return $rest . ' ' . $first;
} 
$trans = array_map('func', $names);

Demo

给出:

Array
(
    [0] => Hood Robin
    [1] => John Little
    [2] => Marion Maid
    [3] => Tuck Friar
    [4] => Scarlet Will
    [5] => Fitzgerald Kennedy John
)

答案 1 :(得分:3)

不是一个特别迷人的解决方案:

foreach( $person_array as $key => $value){

$reversed_person_array[]=implode(' ', array_reverse(explode(' ', $value,2)));

}

答案 2 :(得分:3)

foreach($names as $key => $name)
{
    $splitted = explode(' ', $name, 2);
    $names[$key] = $splitted[1].' '.$splitted[0];
}

答案 3 :(得分:1)

浏览你的数组,使用explode将条目拆分为''(空格),然后使用array_shift剪切并获取第一个元素,array_push到最后和'{(空格)再次implode整个事情。

答案 4 :(得分:0)

哈!那是伟大的艾哈迈德!

我正在做类似的事情......得到了

$first = $array[0];
array_shift($array);
array_push($array, $first);
然后我刷新了页面并看到了你的页面。干净整洁!