我需要从以下php mysql代码中获取一个数组输出[[1, 26], [3, 16], [3, 17], [4, 27], [4, 26]]
include("db.php");
$villa = $_GET['villa'];
$sql = mysql_query("SELECT unavailable_date_from, unavailable_date_to FROM villa WHERE name = '".$villa."'");
$json = "[";
while($results = mysql_fetch_object($sql)){
foreach ($results as $field => $value) {
$a = explode("-", $value);
$json = $json . '[' . $a[1] .','. $a[2] .'],';
}
$json = substr($json, 0, strlen($json)-1);
}
$json = $json . ']';
echo $json;
当前代码给出以下结果:[[03,08],[03,10][03,15],[03,20]]
有人可以告诉我如何在第二个和第三个数组元素之间添加一个逗号
由于
答案 0 :(得分:3)
将$json = substr($json, 0, strlen($json)-1);
移至$json = $json . ']';
之前的行。
看起来像:
if ($json != '[') $json = substr($json, 0, strlen($json)-1);
$json = $json . ']';
有点乱,但它会起作用。编辑:使用rtrim
会更好:
$json = rtrim($json, ',');
$json = $json . ']';
这是完整的代码:
$json = '';
while($results = mysql_fetch_object($sql)) {
foreach ($results as $field => $value) {
$a = explode("-", $value);
$json .= '[' . $a[1] .','. $a[2] .'],';
}
}
$json = '[' . rtrim($json,','). ']';
答案 1 :(得分:0)
例如添加:
$json = str_replace('][', '],[', $json);
在最后一个回声线之前。
答案 2 :(得分:0)
$json = substr($json, 0, strlen($json)-1);
应该在循环结束之后和']'
添加之前。
include("db.php");
$villa = $_GET['villa'];
$sql = mysql_query("SELECT unavailable_date_from, unavailable_date_to FROM villa WHERE name = '".$villa."'");
$json = "[";
while($results = mysql_fetch_object($sql)){
foreach ($results as $field => $value) {
$a = explode("-", $value);
$json = $json . '[' . $a[1] .','. $a[2] .'],';
}
}
if (len($json) > 1) $json = substr($json, 0, strlen($json)-1);
$json = $json . ']';
echo $json;