一个查询:$pid = $_GET['pid'];
$sql = "SELECT * FROM city_area WHERE parentid = '$pid'";
$query = $db->query($sql);
$count = $db->rows($sql);for($i='0';$i<$count;$i++)
{
$rows = $db->loop_fetch_array($query);
$in = '"'.$i.'"=>array("pid"=>"'.$rows[areaid].'","name"=>"'.$rows[areaname].'"),';
$a .= $in;
}
echo $a.'<br>';//$data = array("0"=>array("pid"=>"1","name"=>"四川"),"1"=>array("pid"=>"3","name"=>"贵州"),);
$data = array($a);echo count($data);
第一个echo结果:"0"=>array("pid"=>"1","name"=>"四川"),"1"=>array("pid"=>"3","name"=>"贵州"),
第二个echo结果:1为什么不是2呢。我把代码红色部分禁用,绿色部分启用,第二个echo结果:2。这个是什么原因?
$sql = "SELECT * FROM city_area WHERE parentid = '$pid'";
$query = $db->query($sql);
$count = $db->rows($sql);for($i='0';$i<$count;$i++)
{
$rows = $db->loop_fetch_array($query);
$in = '"'.$i.'"=>array("pid"=>"'.$rows[areaid].'","name"=>"'.$rows[areaname].'"),';
$a .= $in;
}
echo $a.'<br>';//$data = array("0"=>array("pid"=>"1","name"=>"四川"),"1"=>array("pid"=>"3","name"=>"贵州"),);
$data = array($a);echo count($data);
第一个echo结果:"0"=>array("pid"=>"1","name"=>"四川"),"1"=>array("pid"=>"3","name"=>"贵州"),
第二个echo结果:1为什么不是2呢。我把代码红色部分禁用,绿色部分启用,第二个echo结果:2。这个是什么原因?
红色部分代码:$data = array($a);怎么才能统计为2 ?
$data = [0] => $a所以只有一项了
希望这回能让你明白如果还不明白我就真没招了lz就只能好好恶补下array的知识了。。
$data=array("0"=>array("pid"=>"1","name"=>"四川"),"1"=>array("pid"=>"2","name"=>"成都"),"2"=>array("pid"=>"3","name"=>"云南"));//模拟查询结果这是一个JS返回的值。我想把array里面的内容用循环查询赋值后再加到这个array里面,应该怎么弄?不知道我说清楚没有。for($i='0';$i<$count;$i++)
{
$rows = $db->loop_fetch_array($query);
$in = '"'.$i.'"=>array("pid"=>"'.$rows[areaid].'","name"=>"'.$rows[areaname].'"),';
$a .= $in;
}就是把$a加入的 array里面去,就成了一个多维数组。
可以考虑用array_push或者array_shift虽然我也确定我真的理解你的意思没有kaka
$sql = "SELECT * FROM city_area WHERE parentid = '$pid'";
$query = $db->query($sql);
$count = $db->rows($sql);$data = array();
for($i='0';$i<$count;$i++) {
$row = $db->loop_fetch_array($query);
$data[] = array('pid'=>$row['areaid'],'name'=>$row['areaname']);
}echo count($data);