/ / PHP tablica kontrolna zawiera wiele tablic podrzędnych z tablicą danych LUB tylko jedną tablicę danych - php, tablice

Tablica sprawdzania PHP zawiera wiele podrzędnych tablic z tablicą danych LUB tylko jedną tablicę danych - php, tablice

Odebrałem tablicę z API i muszę ją przeanalizować. Czasami zwraca jedną tablicę danych taką jak ta

array{
[name] => aaa
[address] => bbb
[country] => ccc
}

LUB czasami zwraca wiele takich tablic danych

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
}
}

Jaki jest najlepszy sposób ustalenia tego zwrotutablica zawiera wiele tablic? Lub jakie jest dla tego wyrażenie if? Wiem, jak napisać funkcję, a zwrot jest, czy nie. jak foreach, sprawdź is_array, a następnie wróć
Ale czy istnieje jakikolwiek wyraźny sposób lub funkcja php może to zrobić?

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz po prostu użyć isset wiedzieć, czy pierwszy indeks jest liczbą (wielowymiarową) czy nie (jednowymiarową):

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
}

0 dla odpowiedzi nr 2

Jeśli name klucz zawsze istnieje, możesz sprawdzić, czy jest ustawiony na pierwszym poziomie, a jeśli tak, to masz jedną tablicę wartości.

if(array_key_exists("name",$array)) {
//single
}
elseif(isset($array[0]) && array_key_exists("name",$array[0])) {
//multi
}
else {
//neither!
}

0 dla odpowiedzi № 3

Już udzielono odpowiedzi, ale szersze podejście nie polega na tym, czy indeksy są liczbowe, czy nie:

if(is_array(reset($array)) {
// multi-dimensional
} else {
// single-dimensional
}