📅  最后修改于: 2023-12-03 14:45:25.875000             🧑  作者: Mango
在处理 JSON 数据时,有时候我们需要获取其中的所有数组键,以便进行进一步的处理。下面介绍几种获取 JSON 中所有数组键的方法。
$json = '{"name":"John","age":30,"cars":["Ford","BMW","Fiat"]}';
$data = json_decode($json, true);
$keys = array_keys($data['cars']);
print_r($keys);
上述代码使用 PHP 内置函数 array_keys
获取 JSON 中所有数组 cars
的键,输出结果为:
Array
(
[0] => 0
[1] => 1
[2] => 2
)
$json = '{"name":"John","age":30,"cars":["Ford","BMW","Fiat"]}';
$data = json_decode($json, true);
$keys = array();
foreach ($data['cars'] as $key => $value) {
$keys[] = $key;
}
print_r($keys);
上述代码使用循环遍历 JSON 中所有数组 cars
的键,输出结果同上。
function get_array_keys($value, $key, &$keys) {
if(is_array($value)) {
array_walk_recursive($value, 'get_array_keys', $keys);
} else {
$keys[] = $key;
}
}
$json = '{"name":"John","age":30,"cars":["Ford","BMW","Fiat"]}';
$data = json_decode($json, true);
$keys = array();
array_walk_recursive($data, 'get_array_keys', $keys);
print_r(array_unique($keys));
上述代码使用 PHP 内置函数 array_walk_recursive
遍历 JSON 中所有数组的键并保存到一个数组中,输出结果为:
Array
(
[0] => name
[1] => age
[2] => cars
[3] => 0
[4] => 1
[5] => 2
)
以上三种方法都可以用来获取 JSON 中所有数组键,根据具体需求选择适合的方法即可。