0

我正在做一个关于如何获取以逗号分隔的文本字符串并反转单个单词并以相同顺序返回单词的作业。

这段代码可以做到这一点,但由于某种原因它没有将其作为字符串返回,我不明白。

<?php
function bassAckwards($input)
{
    // YOUR CODE HERE

    $commas = substr_count($input, ",");
    $NumWords = ($commas + 1);
    $words = array($input);
    for($x=0;$x<$NumWords;$x++)
    {
        $answer = array(strrev($words[$x]));
        $answer = implode(",",$answer);
        print $answer;
    }
}  
?>
4

2 回答 2

4
function bassAckwards($str){
  $words = explode(',', $str);
  $reversedWords = array_map('strrev', $words);
  return implode(',', $reversedWords);
}

var_dump(bassAckwards('foo,bar,baz')); // string(11) "oof,rab,zab"

省去一些麻烦并使用内置功能。

  • explode
    制作 'foo,bar,baz' => 数组('foo','bar','baz')
  • array_map&对数组的每个元素strrev
    执行(字符串反转)并返回 [modified] 数组。strrevarray_map
  • implode
    将数组转换回 csv。
于 2013-09-05T20:18:37.873 回答
0
$reversedWords = array();

// Explode by commas
$words = explode(',', $input);
foreach ($word in $words) {
    // For each word
    // Stack it, reversed, in the new array $reversedWords
    $reversedWords[] = strrev($word);
}

// Implode by commas
$output = implode(',', $reversedWords);

print $output;
于 2013-09-05T20:18:33.283 回答