使用此代码:
$brands = json_decode($data, true);
echo json_encode($brands);
echo "<br>";
echo gettype($brands);
echo "<br>";
foreach ($brands['brand_name'] as $brand) {
echo $brand, '<br>';
}
我收到警告:为foreach()提供的参数无效。如果我添加这些行:
$brands = json_decode($data, true);
echo json_encode($brands);
echo "<br>";
echo gettype($brands);
echo "<br>";
foreach ($brands['brand_name'] as $brand) {
echo $brand, '<br>';
}
我可以看到我正在使用的数据,并确认$ brands是一个数组。以下是在浏览器中查看时页面上的输出:
{“result”:1,“results”:[{“brand_id”:“1”,“brand_name”:“Gildan”},{“brand_id”:“2”,“brand_name”:“American Apparel” },{“brand_id”:“3”,“brand_name”:“Rabbit Skins”},{“brand_id”:“4”,“brand_name”:“Anvil”},{“brand_id”:“5”,“brand_name “:”Bella / Canvas“},{”brand_id“:”6“,”brand_name“:”Alternative“},{”brand_id“:”8“,”brand_name“:”Hanes“},{”brand_id“: “9”,“brand_name”:“ALO”},{“brand_id”:“10”,“brand_name”:“Augusta”},{“brand_id”:“11”,“brand_name”:“Precious Cargo”}, { “brand_id”: “12”, “BRAND_NAME”: “其他”},{ “brand_id”: “13”, “BRAND_NAME”: “Jerzees”},{ “brand_id”: “15”, “BRAND_NAME”:” Liberty Bags“},{”brand_id“:”16“,”brand_name“:”Port Authority“},{”brand_id“:”17“,”brand_name“:”Next Level“}}} 阵列
警告:第36行的foreach()提供的参数无效
由于$ brands是一个数组,我认为这应该有效。任何想法为什么不是?
答案 0 :(得分:2)
$brands
是一个数组,但$brands['brand_name']
不是,这就是你要循环的内容。 e.g。
$foo = array('bar' => 'baz');
^^^^--array ^^^^^-key ^^^^---string
foreach($foo as $value) { } // this is ok. $foo is an array
foreach($foo['bar'] as $value) { } // this is wrong. $foo['bar'] is a STRING
答案 1 :(得分:2)
您应该反复遍历$brands['results']
:
foreach ($brands['results'] as $brand) {
echo $brand['brand_name'], '<br>';
}