php 字符串拼接

<?php
header("Content-type:text/html; charset=utf-8");
header("Cache-Control:no-cache");

$cities=$_POST['city'];
$temp="";
for($i=0; $i<count($cities); $i++){
    $temp.=$cities[$i];
}
$res='[';
for($i=0; $i<count($cities); $i++){
    if($i==count($cities)-1){
        $res.='{"cityname":"'.$cities[$i].'","price":"'.rand(500,1500).'"}]';
    }else{
        $res.='{"cityname":"'.$cities[$i].'","price":"'.rand(500,1500).'"},';
        }
}
echo $res;
?>

在上面这个php文件中,'.$cities[$i].' '.rand(500,1500).'为什么要用单引号,去掉单引号,".$cities[$i]." ".rand(500,1500)."这样拼接为什么不行?
请各位老师指教,非常感谢!

阅读 4.3k
2 个回答
[{"cityname":"value"},"price":"100"]

你返回的数据大概长这样,如果去掉你说的那个单引号就长这样

[{"cityname":value},"price":"100"]

看字符串拼接要一截一截看,从开头那个最外层的引号,看到第一个对应的引号

'{"cityname":"' //第一截去掉单引号:{"cityname":" 
.$cities[$i].//第二截这个是变量:武汉
'","price":"'//第三截:  ","price":"
.rand(500,1500).//第四截:501
'"}]';//第五截: "}]

//把上面解析出来的拼起来
{"cityname":"武汉","price":"501"}]

单不套单,双不套双,单双引号都是要成对出现的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题