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
    make 'foo,bar,baz' => array('foo','bar','baz')
  • array_map&配列のすべての要素に対してstrrev
    実行strrev(文字列の反転) を実行しarray_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 に答える