运行以下代码时,我收到错误消息为为foreach()提供的无效参数:
$datatoconvert = "Some Word";
$converteddata = "";
$n=1;
$converteddata .=$datatoconvert[0];
foreach ($datatoconvert as $arr) {
if($arr[n] != ' ') {
$n++;
} else {
$n++;
$converteddata .=$arr[n];
}
}
代码应该找到每个单词的第一个字符并返回带有这些字符的字符串。所以在上面的例子中,我试图将输出作为“SW”。
答案 0 :(得分:1)
首先需要将字符串$ datatoconvert分解为数组。
$words = explode(' ', $datatoconvert);
应该做的伎俩。然后在$ words上使用foreach()。
答案 1 :(得分: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函数。
希望我有所帮助。
答案 2 :(得分:1)
当你做
时$datatoconvert = "Some Word";
$converteddata = "";
$n=1;
$converteddata .=$datatoconvert[0];
你会得到的是(Live output)
string(1) "S"
你可以通过爆炸轻松获得
$datatoconvert = "Some Word";
$converteddata = "";
$words = explode(" ", $datatoconvert );
foreach ($words as $a) {
$converteddata .= $a[0];
}
echo $converteddata ;