我有以下代码来遍历数组并从结果中构建一个字符串:
$finalstring;
$tempstring;
foreach($arr as $key => $value)
{
$i = 0;
foreach($value as $key1 => $value1)
{
$i+= 1;
if($i == 1)
{
$tempstring . $value1 . "|";
}
if($i == 2)
{
$tempstring . $value1 . "|||||";
}
if($i == 3)
{
$tempstring . $value1 . "||||||||||";
}
if($i == 4)
{
$tempstring . $value1 . "|||||||||||||||||'n";
}
}
echo $tempstring;
$finalstring . $tempstring;
}
echo $finalstring;
但是,代码似乎没有构建字符串(数组绝对不为空,它的格式是这样的-
Array
(
[0] => Array
(
[Name] => Ron
[Date] => 9/23/10
[Title] => Boss
[Activity] => Soccer
)
[1] => Array
(
[Name] => Tim
[Date] => 9/23/10
[Title] => player
[Activity] => Soccer
)
[2] => Array
(
[Name] => Jim
[Date] => 9/23/10
[Title] => manager
[Activity] => Soccer
)
[3] => Array
(
[Name] => Lud
[Date] => 9/23/10
[Title] => employee
[Activity] => Soccer
)
[4] => Array
(
[Name] => Ron
[Date] => 9/23/10
[Title] => sub boss
[Activity] => Soccer
)
[5] => Array
(
[Name] => Lev
[Date] => 9/23/10
[Title] => mini boss
[Activity] => Soccer
)
[6] => Array
(
[Name] => Timpthy
[Date] => 9/23/10
[Title] => super boss
[Activity] => Soccer
)
[7] => Array
(
[Name] => Jimbo
[Date] => 9/23/10
[Title] => final battle
[Activity] => Soccer
)
[8] => Array
(
[Name] => El
[Date] => 9/23/10
[Title] => link
[Activity] => Soccer
)
)
代码无法同时构建$tempstring
和$finalstring
有什么原因吗(我的意思是 echo 语句没有输出值)?
你应该像这样构建它:
$tempstring .= $value1 . "|";
我不知道
你为什么要这样做,但错误是你未能分配串联的值。事实上,即使计算了连接结果,它也不会消失(不确定它是否被评估,因为我怀疑解释器内置了优化,只会完全忽略评估)
而不是:
$tempstring . $value1 . "|";
你应该写:
$tempstring .= $value1 . "|";
或长手:
$tempstring = $tempstring . $value1 . "|";
将
$finalstring
和$tempstring
初始化为空字符串。每次要将值存储到变量中时,例如使用它
$tempstring .= $value1 . "|";
请记住放置=
以便值可以合并