php循环 统计json 中某个键值 元素 语法
时间: 2024-03-04 22:49:39 浏览: 17
可以使用PHP的foreach循环结合json_decode函数来统计JSON中某个键对应的值的数量。具体语法如下:
```
$json_str = '[{"name": "John", "age": 30, "city": "New York"},
{"name": "Mary", "age": 25, "city": "London"},
{"name": "Bob", "age": 40, "city": "Paris"},
{"name": "Alice", "age": 35, "city": "Tokyo"}]';
$json_arr = json_decode($json_str, true);
$count = 0;
foreach ($json_arr as $item) {
if ($item['city'] == 'New York') {
$count++;
}
}
echo "城市为New York的元素数量为:$count";
```
这段代码首先将JSON字符串转换为关联数组,然后使用foreach循环遍历数组中的每个元素,判断该元素中键为'city'的值是否为'New York',如果是,则将计数器$count加1。最后输出计数器的值即可。
相关问题
php循环 统计json 中的键值 语法
可以使用PHP的foreach循环结合json_decode函数来统计JSON中的键值对数量。具体语法如下:
```
$json_str = '{"name": "John", "age": 30, "city": "New York"}';
$json_obj = json_decode($json_str);
$count = 0;
foreach ($json_obj as $key => $value) {
$count++;
}
echo "JSON中的键值对数量为:$count";
```
这段代码首先将JSON字符串转换为JSON对象,然后使用foreach循环遍历JSON对象中的每个键值对,每遍历一次就将计数器$count加1。最后输出计数器的值即可。
正则匹配json中某个键值对
如果您想使用正则表达式来匹配 JSON 中的某个键值对,您需要首先将 JSON 转换为字符串,然后使用正则表达式匹配字符串中的键值对。假设您有以下 JSON 对象:
```json
{
"name": "John",
"age": 30,
"city": "New York"
}
```
如果您想匹配键值对 `age: 30`,您可以将 JSON 转换为字符串,然后使用正则表达式进行匹配,如下所示:
```python
import json
import re
json_obj = {
"name": "John",
"age": 30,
"city": "New York"
}
json_str = json.dumps(json_obj)
match = re.search(r'"age"\s*:\s*30', json_str)
if match:
print("Match found!")
else:
print("Match not found.")
```
在上面的示例中,我们首先使用 `json.dumps()` 函数将 JSON 对象转换为字符串。然后,我们使用正则表达式 `'"age"\s*:\s*30'` 匹配字符串中的 `age: 30` 键值对。如果匹配成功,则输出 `Match found!`,否则输出 `Match not found.`。