Json数组添加到php数组

Json数组添加到php数组,php,Php,我想通过向数组中添加元素来实现类似的效果,但是当我使用这种方法时,会在json元素中创建两个节点。我只想要一个节点,其中包含所有的实体,您也可以将节点命名为ie属性 $json = array(); while($row = mysql_fetch_assoc($sth)) { $json['name'] = $row['name']; $json['id'] = $row['id']; $data[] = $json; } $custom = array('name

我想通过向数组中添加元素来实现类似的效果,但是当我使用这种方法时,会在json元素中创建两个节点。我只想要一个节点,其中包含所有的实体,您也可以将节点命名为ie属性

$json = array();

while($row = mysql_fetch_assoc($sth)) {
    $json['name'] = $row['name'];
    $json['id'] = $row['id'];
    $data[] = $json;
}

$custom = array('name'=>'foo', 'id' => 'bar');
$data[] = $custom;

试试这个代码数组,这里推送是更好的选择

    <?php
    $json = array();

    while($row = mysql_fetch_assoc($sth)) {
        $temp = array();
        $temp = array('name' => $row['name'], 'id' => $row['id']);
        array_push($json, $temp);
    }

    $custom = array('name'=>'foo', 'id' => 'bar');
    array_push($json,$custom);

   ?>


你能添加你得到的和你期望的吗?像这样
{name:[“foo”,“bar”],id:[1,2]}
??为什么
数组推送()更好?这只是一个额外的函数调用。与
$json[]=
相同。为什么要两次初始化$temp呢?这很容易理解$json['name']=$row['name']$json['id']=$row['id']$数据[]=$json;或$temp=array()$temp=array('name'=>$row['name'],'id'=>$row['id']);数组推送($json,$temp);密钥由array_push($custom=array('name'=>'foo','id'=>'bar');array_push($json,$custom);}自动维护。第一个更好理解。钥匙也会通过
[]=
自动维护。我们使用的是PHP而不是Java;-)。所有变量都在同一范围内。