json 来自Shopify的Php REST API如果存在子数组则订购

wlp8pajw  于 2023-04-13  发布在  PHP
关注(0)|答案(1)|浏览(115)

从shopify我得到的订单,但项目是在subarrary,我不知道有多少项目

$products_obj_url = $api_url . '/admin/api/2022-07/orders.json?status=any&limit=250&since_id='.$id;}
    $products_content = @file_get_contents( $products_obj_url );
    $products_json = json_decode( $products_content, true );
    $orders = $products_json['orders'];

    foreach($orders as $orders){   
            echo "<tr>
            echo "<td>".$conto."</td>";
            echo "<td>". $orders['id']. "</td>";                
            echo "<td>". $orders['line_items'][0]['id']. "</td>";
            echo "<td>". $orders['line_items'][0]['name']. "</td>";
            echo "<td>". $orders['line_items'][0]['price']. "</td>";
            echo "<td>". $orders['line_items'][0]['product_id']. "</td>";
            echo "<td>". $orders['line_items'][0]['sku']. "</td>";
            echo "<td>". $orders['line_items'][0]['quantity']. "</td></tr>";}

问题是,在这个模式下,我只能看到第一个项目...我如何才能创建“循环”来查看所有项目..我不知道我可以有多少项目。

osh3o9ms

osh3o9ms1#

您可以使用嵌套循环迭代每个订单的所有行项目。

foreach($orders as $order){
    echo "<tr>";
    echo "<td>".$conto."</td>";
    echo "<td>".$order['id']."</td>";
    
    // iterate over all line items for this order
    foreach ($order['line_items'] as $item) {
        echo "<td>".$item['id']."</td>";
        echo "<td>".$item['name']."</td>";
        echo "<td>".$item['price']."</td>";
        echo "<td>".$item['product_id']."</td>";
        echo "<td>".$item['sku']."</td>";
        echo "<td>".$item['quantity']."</td>";
        echo "</tr>";
    }
}

这将为每个订单的每个行项目打印出一行。内部循环将迭代当前订单的所有行项目,无论有多少行项目。

相关问题