如何将 json 数据转换为 php 变量?
How can i convert json data into php variables?
我有一个 json 文件,我想从中获取数据并将其用作 php 变量 循环内。
我不断收到未定义的索引错误,但它根本不起作用...
这是我的代码:
$file = file_get_contents("csv/products.json",'r');
for($i=0;$i<18;$i++){
$datosArray = json_decode($file,true);
//var_dump($datosArray);
if (isset ($datosArray)){
$id = $datosArray["id"];
$genderid = $datosArray["sex_id"];
$dest = $datosArray["destaque"];
$cat = $datosArray["categoria"];
$marc = $datosArray["Marca"];
$name = $datosArray["nombre"];
$desc = $datosArray["descripcion"];
$pho1 = $datosArray["photo_id1"];
$pho2 = $datosArray["photo_id2"];
$pho3 = $datosArray["photo_id3"];
$dprice = $datosArray["D_price"];
$oprice = $datosArray["O_price"];
}
?>
这是我的 json 的一部分:
[
{
"id": 1,
"sex_id": 101,
"destaque": 1,
"categoria": "Vestidos",
"Marca": "Marfinno",
"nombre": "Mono rayas",
"descripcion": "Mono de rayas con botones y amarre Marfinno",
"photo_id1": "Female1.jpg",
"photo_is2": "Female1.1.jpg",
"photo_id3": "Female1.2.jpg",
"D_price": "0.00",
"O_price": "0.00"
},
{
"id": 2,
"sex_id": 101,
"destaque": 0,
"categoria": "Vestidos",
"Marca": "Marfinno",
"nombre": "Mono liso",
"descripcion": "Mono liso con amarre Marfinno",
"photo_id1": "Female2.jpg",
"photo_is2": "Female2.1.jpg",
"photo_id3": "Female2.2.jpg",
"D_price": "0.00",
"O_price": "0.00"
},
谢谢。
这里有错误:
$file = file_get_contents("csv/products.json",'r');
简单地说:
$file = file_get_contents("csv/products.json");
file_get_contents
不需要像打开文件时那样的 'r' 参数。参见 https://www.php.net/manual/en/function.file-get-contents.php
然后从关于var_dump
的评论中,你必须看到你有一个数组数组。
array(54) {
[0]=> array(12) {
["id"]=> int(1)
["sex_id"]=> int(101)
["destaque"]=> int(1)
["categoria"]=> string(8) "Vestidos"
["Marca"]=> string(8) "Marfinno"
["nombre"]=> string(10) "Mono rayas"
["descripcion"]=> string(44) "Mono de rayas con botones y amarre Marfinno"
["photo_id1"]=> string(11) "Female1.jpg"
["photo_is2"]=> string(13) "Female1.1.jpg"
["photo_id3"]=> string(13) "Female1.2.jpg"
["D_price"]=> string(7) "0.00"
["O_price"]=> string(7) "0.00"
}
[1]=> array(12) {
....
}
所以当你想引用一个项目时,你必须放2个索引:
...
$id = $datosArray[$i]["id"];
$genderid = $datosArray[$i]["sex_id"];
...
如果您将那部分代码保留在 for
循环的上下文中,这将起作用。
我有一个 json 文件,我想从中获取数据并将其用作 php 变量 循环内。
我不断收到未定义的索引错误,但它根本不起作用...
这是我的代码:
$file = file_get_contents("csv/products.json",'r');
for($i=0;$i<18;$i++){
$datosArray = json_decode($file,true);
//var_dump($datosArray);
if (isset ($datosArray)){
$id = $datosArray["id"];
$genderid = $datosArray["sex_id"];
$dest = $datosArray["destaque"];
$cat = $datosArray["categoria"];
$marc = $datosArray["Marca"];
$name = $datosArray["nombre"];
$desc = $datosArray["descripcion"];
$pho1 = $datosArray["photo_id1"];
$pho2 = $datosArray["photo_id2"];
$pho3 = $datosArray["photo_id3"];
$dprice = $datosArray["D_price"];
$oprice = $datosArray["O_price"];
}
?>
这是我的 json 的一部分:
[
{
"id": 1,
"sex_id": 101,
"destaque": 1,
"categoria": "Vestidos",
"Marca": "Marfinno",
"nombre": "Mono rayas",
"descripcion": "Mono de rayas con botones y amarre Marfinno",
"photo_id1": "Female1.jpg",
"photo_is2": "Female1.1.jpg",
"photo_id3": "Female1.2.jpg",
"D_price": "0.00",
"O_price": "0.00"
},
{
"id": 2,
"sex_id": 101,
"destaque": 0,
"categoria": "Vestidos",
"Marca": "Marfinno",
"nombre": "Mono liso",
"descripcion": "Mono liso con amarre Marfinno",
"photo_id1": "Female2.jpg",
"photo_is2": "Female2.1.jpg",
"photo_id3": "Female2.2.jpg",
"D_price": "0.00",
"O_price": "0.00"
},
谢谢。
这里有错误:
$file = file_get_contents("csv/products.json",'r');
简单地说:
$file = file_get_contents("csv/products.json");
file_get_contents
不需要像打开文件时那样的 'r' 参数。参见 https://www.php.net/manual/en/function.file-get-contents.php
然后从关于var_dump
的评论中,你必须看到你有一个数组数组。
array(54) {
[0]=> array(12) {
["id"]=> int(1)
["sex_id"]=> int(101)
["destaque"]=> int(1)
["categoria"]=> string(8) "Vestidos"
["Marca"]=> string(8) "Marfinno"
["nombre"]=> string(10) "Mono rayas"
["descripcion"]=> string(44) "Mono de rayas con botones y amarre Marfinno"
["photo_id1"]=> string(11) "Female1.jpg"
["photo_is2"]=> string(13) "Female1.1.jpg"
["photo_id3"]=> string(13) "Female1.2.jpg"
["D_price"]=> string(7) "0.00"
["O_price"]=> string(7) "0.00"
}
[1]=> array(12) {
....
}
所以当你想引用一个项目时,你必须放2个索引:
...
$id = $datosArray[$i]["id"];
$genderid = $datosArray[$i]["sex_id"];
...
如果您将那部分代码保留在 for
循环的上下文中,这将起作用。