我正在尝试用循环数据创建一个数组。变量包含循环数据。一切正常,但是当输出数组时,索引卡在0并且不会从0上升到1等等。我想知道问题是什么以及如何解决这个问题。
感谢。
$productinfo = array(
array(
"Productname" => "$productname",
"StarRating" => "$starrating",
"AddedValue" => "$addedvalue",
"ProductImage" => "$image",
"TotalPrice" => "$totalprice",
"ProductLink" => "$link" )
);
$productinfojson= json_encode($productinfo);
$output = json_decode($productinfojson, TRUE);
echo "<pre>";
print_r( $output );
echo "</pre>";
以上输出:
Array
(
[0] => Array
(
[Procuctname] => Pencil Stack
[StarRating] => 3
[AddedValue] => Free Delivery
[ProductImage] =>
[TotalPrice] => 5.50
[ProductLink] => http://---.net/product
)
)
Array
(
[0] => Array
(
[Procuctname] => Block Bundle
[StarRating] => 4
[AddedValue] => Free Delivery
[ProductImage] =>
[TotalPrice] => 15
[ProductLink] => http://---.net/product
)
)
如果只使用一个数组,则更新。
代码:
$productinfo = array(
"Productname" => "$productname",
"StarRating" => "$starrating",
"AddedValue" => "$addedvalue",
"ProductImage" => "$image",
"TotalPrice" => "$totalprice",
"ProductLink" => "$link" );
OUTPUT
Array
(
[Procuctname] => Pencil Stack
[StarRating] => 3
[AddedValue] => Free Delivery
[ProductImage] =>
[TotalPrice] => 5.50
[ProductLink] => http://---.net/product
)
Array
(
[Procuctname] => Block Bundle
[StarRating] => 4
[AddedValue] => Free Delivery
[ProductImage] =>
[TotalPrice] => 15
[ProductLink] => http://---.net/product
)
答案 0 :(得分:0)
问题源于您的阵列创建。你的代码中似乎没有任何循环....
无论如何,让我们整理你的阵列。我假设您从数据库/数据源获取数据并将其分配给变量,将其输入到数组中?那么你目前的方式,它覆盖了数组中的第一个索引元素。
免责声明: 以下是伪代码,直到您使用实际的循环代码进行更新。
$productinfo
这会将每个元素添加到新的json
数组中,您应该能够正确地遍历这些元素。
还有一点需要注意,你正在解码你的$output = json_decode($productinfojson, TRUE);
:
TRUE
第二个参数(foreach($response->products->product as $product) {...
)将其转换为关联数组,而不是对象。因此,当您将其作为下面的对象循环时:
TRUE
它不会起作用。如果您想将它作为对象,请删除第二个参数(foreach($response['products']['product'] as $product) {...
),否则将其作为数组循环:
position: relative