【问题标题】:Echo values in nested array in PHPPHP中嵌套数组中的回显值
【发布时间】:2017-02-22 15:25:30
【问题描述】:

我将一组数据从 AngularJS 传递到 PHP,我最终得到以下数组:

if(in_array('application/json', $contentType)) { // Check if Content-Type is JSON
  $data = json_decode($rawBody); // Then decode it
  $productes = $data->products;
} else {
  parse_str($data, $data); // If not JSON, just do same as PHP default method
}

products:[
  0:{
    product: "Name1",
    number: 1
  },
  1:{
    product: "Name2",
    number: 3
  }    
]

我怎样才能设法遍历它以最终显示如下产品列表:

<li>Name1 (1)</li>
<li>Name2 (3)</li>

我尝试了以下方法,但没有成功:

foreach ($products as $value) {
    echo "<li>". $value->product ." (". $value->number .")</li>";
}

这是我在执行 var_dump($products) 时得到的结果:

array(4) {
  [0]=>
  object(stdClass)#2 (3) {
    ["product"]=>
    string(19) "Croissant d'ametlla"
    ["number"]=>
    int(1)
    ["preu"]=>
    float(1.95)
  }
  [1]=>
  object(stdClass)#3 (3) {
    ["product"]=>
    string(29) "Pain au chocolat (napolitana)"
    ["number"]=>
    int(1)
    ["preu"]=>
    float(1.4)
  }
  [2]=>
  object(stdClass)#4 (3) {
    ["product"]=>
    string(16) "Brioche de sucre"
    ["number"]=>
    int(1)
    ["preu"]=>
    float(1.2)
  }
  [3]=>
  object(stdClass)#5 (3) {
    ["product"]=>
    string(36) "Pa de blat egipci i integral (Xusco)"
    ["number"]=>
    int(1)
    ["preu"]=>
    float(4.45)
  }
}

解决方案

因为我已经开始解码 JSON,这就是最终的工作:

foreach ($products as $product) {
  echo "<li>". $product->product ." (". $product->number .")</li>";
};

【问题讨论】:

  • 请尝试var_dump($products)并分享结果
  • @Mohammad 查看编辑:)
  • 当你说“......但没有运气”时,你得到了什么输出?有错误吗?有什么显示吗?
  • @EricMitjans 请看看这个答案stdClass Object problems

标签: php arrays


【解决方案1】:

因为它是一个数组,所以试试下面的:

foreach ($products as $value) {
    echo "<li>". $value['product'] ." (". $value['number'] .")</li>";
}

【讨论】:

    【解决方案2】:

    你可以试试:

    $json = '{"products":[{"product":"Name1","number":1},{"product":"Name2","number":3}]}';
    $products = json_decode($json, TRUE)["products"];
    foreach($products as $product) {
        echo "<li>{$product["product"]} ({$product["number"]})</li>";
    }
    

    你可以在这里试试: http://sandbox.onlinephpfunctions.com/code/53394eb416be1727398f02e8a0adac68a5ce424e

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      相关资源
      最近更新 更多