【发布时间】:2018-03-12 15:27:45
【问题描述】:
在对 json 字符串执行 json_decode 之后,我有一个包含许多 stdClasses 的数组。
看起来像这样:
product: array(3)
0: stdClass
PropertyAbc: "Product 1|Product 5"
1: stdClass
PropertyXyz: "Product 2|Product 9|Product 10"
2: stdClass
PropertyEfg: "Product 3|Product 12"
我需要将其转换为以下格式的所有值的管道分隔字符串:PropertyName>Value 作为我的最终结果:
PropertyAbc>产品 1|PropertyAbc>产品 5|PropertyXyz>产品 2|PropertyXyz>产品 9|PropertyXyz>产品 10|PropertyEfg>产品 3|PropertyEfg>产品 12
这是我尝试的方法,但无法弄清楚在循环 stdClasses 时如何获取第一个属性的值和名称(注意:每个 stdClass 始终只有一个属性):
foreach ($json->products as $product) {
// Put all products in an array
$arr = explode('|', $NEED-VALUE-OF-FIRST-PROP);
// Loop through array and combine values
foreach ($arr as $key => $value) {
$arr[$key] = $NEED-NAME-OF-FIRST-PROP . ">" . $value;
}
}
【问题讨论】:
-
当使用
foreach ($arr as $key => $value)迭代对象时,$key将保留属性名称。