我从API获得了一个数组回调,我需要解析它。 有时候它会像这样返回一个数据数组
array{
[name] => aaa
[address] => bbb
[country] => ccc
}
或者有时会返回多个这样的数据数组
array{
[0]=>array{
[name] => aaa
[address] => bbb
[country] => ccc
}
[1]=>array{
[name] => qqq
[address] => www
[country] => eee
}
[2]=>array{
[name] => ttt
[address] => yyy
[country] => uuu
}
}
确定返回数组包含多个数组的最佳方法是什么?
或者它的if语句是什么?
我知道如何编写函数并返回是否返回。像foreach然后检查is_array然后返回
但有没有明确的方式或PHP功能可以做到这一点?
答案 0 :(得分:1)
你可以使用isset
来知道第一个索引是否是一个数字(多维)或不是(一维):
if (isset($array[0]) {
// Since the index is 0 but not the key 'name'
// The array is multi-dimensional
} else {
// Since the first index is not 0, the array is
// uni-dimensional
}
答案 1 :(得分:0)
如果name
键始终存在,您可以检查它是否设置在第一级,如果是,则您有一个值数组。
if(array_key_exists('name',$array)) {
//single
}
elseif(isset($array[0]) && array_key_exists('name',$array[0])) {
//multi
}
else {
//neither!
}
答案 2 :(得分:0)
已经回答,但更广泛的方法不依赖于索引是否为数字:
if(is_array(reset($array)) {
// multi-dimensional
} else {
// single-dimensional
}