0

次のコードを実行すると、foreach() に指定された無効な引数としてエラー メッセージが表示されます。

$datatoconvert = "Some Word";
$converteddata = "";
$n=1;

$converteddata .=$datatoconvert[0];

foreach ($datatoconvert as $arr) {
 if($arr[n] != ' ') {
  $n++;
 } else {
  $n++;
  $converteddata .=$arr[n];
 }
}

コードはすべての単語の最初の文字を見つけ、これらの文字を含む文字列を返す必要があります。したがって、上記の例では、出力を「SW」として取得しようとしています。

4

3 に答える 3

1

最初に文字列 $datatoconvert を配列に分解する必要があります。

$words = explode(' ', $datatoconvert); 

トリックを行う必要があります。次に、$words で foreach() を実行します。

于 2013-06-14T03:35:13.673 に答える
1

に配列または iterable を提供する必要がありますforeach

あなたがやろうとしていることを達成するには:

$string = "Some Word";
$string = trim($string); //Removes extra white-spaces aroud the $string

$pieces = explode(" ", $string); //Splits the $string at the white-spaces

$output = "";  //Creates an empty output string
foreach ($pieces as $piece) {
   if ($piece) //Checks if the piece is not empty
     $output .= substr($piece, 0, 1); //Add the first letter to the output
}

マルチバイト文字列を使用している場合は、PHP mbstring 関数について読んでください。

私が助けてくれることを願っています。

于 2013-06-14T03:37:22.843 に答える