PHP - 获取 JSON 父值
PHP - get JSON parent value
在 php 中,我正在尝试从此 json 文件中获取数字(0、13、20、45、53、56):
{
"0": {
"classcat": "a",
},
"13": {
"classcat": "b",
},
"20": {
"classcat": "c",
},
"45": {
"classcat": "d",
},
"53": {
"classcat": "e",
},
}
我正在使用 foreach 循环将此文件填充到选择字段。我想要的输出是:
<select>
<option value="(classcatvalue)">(classcatvalue + number)</option>
<option value="a">a 0</option>
<option value="b">b 13</option>
<option value="c">c 20</option>
<option value="d">d 45</option>
<option value="e">e 53</option>
</select>
看起来很简单,但我想不通。
有什么想法吗?
在 json_decoded 字符串之后使用 array_keys。
$values = array_keys(json_decode($json_str, true));
// Now you can output them like:
Echo $values[1]; // 13
一个主要问题是您的 JSON 无效。你有很多额外的逗号。修复后,您可以将其转换为关联数组 json_decode()
:
$options = json_decode(<<<JSON
{
"0" : { "classcat": "a" },
"13": { "classcat": "b" },
"20": { "classcat": "c" },
"45": { "classcat": "d" },
"53": { "classcat": "e" }
}
JSON
, true);
并可选择简化值,删除内部 object/array 并自己写入值:
array_walk($options, function(&$v, $k) { $v = $v['classcat']; });
现在只需使用 foreach
循环输出您的选项即可:
<select>
<option value="(classcatvalue)">(classcatvalue + number)</option>
<?php foreach ($options as $n => $cat) : ?>
<option value="<?= $cat ?>"><?= "$cat $n" ?></option>
<?php endforeach; ?>
</select>
如果没有简化值,应该使用 $cat['classcat']
代替。
使用json_decode()
将JSON转换为PHP数组,然后使用foreach
对其进行循环。
$array = json_decode($json, true);
foreach ($array as $number => $value) {
$classcatvalue = $value['classcat'];
echo "<option value="$classcatvalue">$number $classcatvalue</option>";
}
在 php 中,我正在尝试从此 json 文件中获取数字(0、13、20、45、53、56):
{
"0": {
"classcat": "a",
},
"13": {
"classcat": "b",
},
"20": {
"classcat": "c",
},
"45": {
"classcat": "d",
},
"53": {
"classcat": "e",
},
}
我正在使用 foreach 循环将此文件填充到选择字段。我想要的输出是:
<select>
<option value="(classcatvalue)">(classcatvalue + number)</option>
<option value="a">a 0</option>
<option value="b">b 13</option>
<option value="c">c 20</option>
<option value="d">d 45</option>
<option value="e">e 53</option>
</select>
看起来很简单,但我想不通。 有什么想法吗?
在 json_decoded 字符串之后使用 array_keys。
$values = array_keys(json_decode($json_str, true));
// Now you can output them like:
Echo $values[1]; // 13
一个主要问题是您的 JSON 无效。你有很多额外的逗号。修复后,您可以将其转换为关联数组 json_decode()
:
$options = json_decode(<<<JSON
{
"0" : { "classcat": "a" },
"13": { "classcat": "b" },
"20": { "classcat": "c" },
"45": { "classcat": "d" },
"53": { "classcat": "e" }
}
JSON
, true);
并可选择简化值,删除内部 object/array 并自己写入值:
array_walk($options, function(&$v, $k) { $v = $v['classcat']; });
现在只需使用 foreach
循环输出您的选项即可:
<select>
<option value="(classcatvalue)">(classcatvalue + number)</option>
<?php foreach ($options as $n => $cat) : ?>
<option value="<?= $cat ?>"><?= "$cat $n" ?></option>
<?php endforeach; ?>
</select>
如果没有简化值,应该使用 $cat['classcat']
代替。
使用json_decode()
将JSON转换为PHP数组,然后使用foreach
对其进行循环。
$array = json_decode($json, true);
foreach ($array as $number => $value) {
$classcatvalue = $value['classcat'];
echo "<option value="$classcatvalue">$number $classcatvalue</option>";
}