我需要使用 PHP 在 JSON 文件中找到所有 "type": "featured-product" 实例的直接父级。将此父字符串存储在变量中。使用 foreach。
在下面的示例中,变量的值为“1561093167965”和“3465786822452”
我有点失落,谢谢你的帮助!
{
"current": {
"sections": {
"1561093167965": {
"type": "featured-product"
},
"3465786822452": {
"type": "featured-product"
}
}
}
}
foreach ($json['current']['sections'] as $sectionName => $section) {
if ($section['type'] && $section['type'] == 'featured-product') {
$featuredId = $sectionName;
}
}
您可以采用的另一种方法是创建一个仅包含featured-products
using的新数组array_filter
,然后提取密钥。从文档:
如果回调函数返回 TRUE,则将数组中的当前值返回到结果数组中。保留数组键。
$product_sections = array_keys(
array_filter($json['current']['sections'], function($val) {
return $val['type'] === 'featured-product';
}));
原始代码中的问题是您的$featuredId
变量在循环的每次迭代中都被覆盖,因此当它结束时,它的值将是最后处理的元素之一。如果必须处理多个值,则必须将其添加到数组中或直接在foreach
. 您可以查看有关如何修复代码的其他答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句