数组索引停留在[0]

时间:2016-02-14 22:48:05

标签: php arrays

我正在尝试用循环数据创建一个数组。变量包含循环数据。一切正常,但是当输出数组时,索引卡在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
    )

1 个答案:

答案 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