Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP数组转换为对象的JSON数组_Php_Arrays_Json_Orgchart - Fatal编程技术网

将PHP数组转换为对象的JSON数组

将PHP数组转换为对象的JSON数组,php,arrays,json,orgchart,Php,Arrays,Json,Orgchart,我正在我的项目中使用。在这里,我将从PHP文件返回JSON对象 问题 我的问题是,当我硬编码值时,它工作正常。当我从PHP文件返回数据时。它不起作用。我猜从PHP文件返回的数据格式不正确。文件如下 $result = mysql_query("SELECT * FROM emp"); while($row = mysql_fetch_array( $result )) { $arr1 = array( 'v' => $row['name']

我正在我的项目中使用。在这里,我将从PHP文件返回
JSON对象

问题

我的问题是,当我硬编码值时,它工作正常。当我从PHP文件返回数据时。它不起作用。我猜从PHP文件返回的数据格式不正确。文件如下

$result = mysql_query("SELECT * FROM emp"); 
    while($row = mysql_fetch_array( $result )) {
        $arr1 = array(
            'v' => $row['name'],
            'f' => $row['name']+'<div style="color:red; font-style:italic">President</div>',
            '' => $row['rep'],
            '' => $row['des'],
        );
        array_push($dataarray, $arr1);
    }

echo json_encode($dataarray);
控制台屏幕截图如下:


我需要在PHP文件中再创建一个数组吗。如何根据上面的屏幕截图更改PHP数组。对不起我的英语。谢谢。

您的内部结构是错误的。您的内部结构是一个数组,第一个是映射,后面是两个值。您当前的实现是一个数组,只有一个映射

$result = mysql_query("SELECT * FROM emp"); 
    while($row = mysql_fetch_array( $result )) {
        $arr1 = array(
            array(
                'v' => $row['name'],
                'f' => $row['name'] . '<div style="color:red; font-style:italic">President</div>',
            ),
            $row['rep'],
            $row['des']);
        array_push($dataarray, $arr1);
    }

echo json_encode($dataarray);
$result=mysql\u查询(“从emp中选择*);
while($row=mysql\u fetch\u数组($result)){
$arr1=数组(
排列(
'v'=>$row['name'],
'f'=>$row['name']。'President',
),
$row['rep'],
$row['des']);
阵列推送($dataarray,$arr1);
}
echo json_编码($dataarray);

您需要将“v”和“f”包装在一个数组中,然后将其他值推送到父数组中

$result = mysql_query("SELECT * FROM emp"); 
    while($row = mysql_fetch_array( $result )) {
        $arr1 = array(
            array(
                'v' => $row['name'],
                'f' => $row['name'] . '<div style="color:red; font-style:italic">President</div>'
            ),
            $row['rep'],
            $row['des']
        );
        array_push($dataarray, $arr1);
    }

echo json_encode($dataarray);
$result=mysql\u查询(“从emp中选择*);
while($row=mysql\u fetch\u数组($result)){
$arr1=数组(
排列(
'v'=>$row['name'],
'f'=>$row['name']。'President'
),
$row['rep'],
$row['des']
);
阵列推送($dataarray,$arr1);
}
echo json_编码($dataarray);

在硬编码数组中,第一个键的内部有一个数组,因此您必须像这样更改代码

$result = mysql_query("SELECT * FROM emp"); 
$dataarray = [];
while($row = mysql_fetch_array( $result )) {
    $arr1 = array(
        array(
              'v'=> $row['name'], 
              'f' => $row['name'].'<div style="color:red; font-style:italic">President</div>',),
        $row['rep'],
        $row['des'],
    );
    array_push($dataarray, $arr1);
}

echo json_encode($dataarray);
$result=mysql\u查询(“从emp中选择*);
$dataarray=[];
while($row=mysql\u fetch\u数组($result)){
$arr1=数组(
排列(
'v'=>$row['name'],
'f'=>$row['name']。'President',),
$row['rep'],
$row['des'],
);
阵列推送($dataarray,$arr1);
}
echo json_编码($dataarray);

显示您获得的JSON输出
echo JSON\u encode($dataarray)。。另外,最初在
$dataarray
中存储了什么?@ObjectManipulator,我已经解析了
$dataarray
中的数据,并在屏幕截图
res
中显示了结果。
$result = mysql_query("SELECT * FROM emp"); 
$dataarray = [];
while($row = mysql_fetch_array( $result )) {
    $arr1 = array(
        array(
              'v'=> $row['name'], 
              'f' => $row['name'].'<div style="color:red; font-style:italic">President</div>',),
        $row['rep'],
        $row['des'],
    );
    array_push($dataarray, $arr1);
}

echo json_encode($dataarray);