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

您需要先将字符串 $data 分解为数组。

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

应该做的伎俩。然后 foreach() 在 $words 上。

于 2013-06-14T03:35:13.673 回答
1

您必须为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 回答
1

当你这样做时

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

$converteddata .=$datatoconvert[0];

你会得到的是(实时输出

string(1) "S"

你可以通过爆炸来轻松获得

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

$words = explode(" ", $datatoconvert );
foreach ($words as $a) {
  $converteddata .= $a[0];
}
echo $converteddata ;

现场输出

于 2013-06-14T03:47:29.543 回答