Czy istnieje sposób określenia liczby wymiarów w tablicy PHP?Określanie liczby wymiarów w tablicy PHP
Odpowiedz
Nicea problemem tutaj jest a solution I stole from the PHP Manual:
function countdim($array)
{
if (is_array(reset($array)))
{
$return = countdim(reset($array)) + 1;
}
else
{
$return = 1;
}
return $return;
}
To nie jest całkowicie poprawne. Ponieważ testuje tylko pierwszy element tablic. To daje tylko oczekiwany rezultat, gdy masz pewność, że jest to równomiernie rozkłada tablicę tablic. Będziesz musiał przechodzić przez wszystkie elementy, aby naprawdę poznać różne głębokości. (A może jakiś nieznany algorytm trajektorii, którego nie znam). –
można spróbować to:
$a["one"]["two"]["three"]="1";
function count_dimension($Array, $count = 0) {
if(is_array($Array)) {
return count_dimension(current($Array), ++$count);
} else {
return $count;
}
}
print count_dimension($a);
Przyjemnie, dziękuję –
Podobnie jak większość języków proceduralnych i obiektowego, PHP NIE natywnie wdrożyć wielowymiarowe tablice - to używa zagnieżdżonych tablic.
Funkcja rekursywna sugerowana przez innych jest niechlujna, ale najbliższa odpowiedzi.
C.
Ten działa na tablicach, gdzie każdy wymiar nie mają tego samego rodzaju elementów. Może być konieczne przechodzenie przez wszystkie elementy.
$a[0] = 1; $a[1][0] = 1; $a[2][1][0] = 1; function array_max_depth($array, $depth = 0) { $max_sub_depth = 0; foreach (array_filter($array, 'is_array') as $subarray) { $max_sub_depth = max( $max_sub_depth, array_max_depth($subarray, $depth + 1) ); } return $max_sub_depth + $depth; }
został rozwiązany w Some issues with jumping from one function to another in a loop in php
Ta podwójna funkcja przejdzie do ostatniego wymiaru każdej tablicy w $ a gdy jej nie tablicą już będzie to echo liczbę pętli to zrobił dojdź tam z ogranicznikiem |. Wadą tego kodu jest tylko echo i nie można go zwrócić (w normalny sposób).
function cc($b, $n)
{
$n++.' ';
countdim($b, $n);
}
function countdim($a, $n = 0)
{
if(is_array($a))
{
foreach($a as $b)
{
cc($b, $n);
}
}else
{
echo $n.'|';
}
}
countdim($a);
Tutaj zrobiłem funkcję z powrotem, ale .. jej powrót z html następnie „GET” z powrotem do php na kliknięcia przycisku .. nie wiem w inny sposób, aby to działało tak po prostu .. wymienić swoją tablicę $ a i naciśnij przycisk:/
$max_depth_var = isset($_REQUEST['max_depth_var']) ? $_REQUEST['max_depth_var'] : 0;
?>
<form id="form01" method="GET">
<input type="hidden" name="max_depth_var" value="<?php
function cc($b, $n)
{
$n++.' ';
bb($b, $n);
}
function bb($a, $n = 0)
{
if(is_array($a))
{
foreach($a as $b)cc($b, $n);
}else
{
echo $n.', ';
};
}
bb($a); ?>">
<input type="submit" form="form01" value="Get max depth value">
</form><?php
$max_depth_var = max(explode(', ', rtrim($max_depth_var, ",")));
echo "Array's maximum dimention is $max_depth_var.";
Nie po prostu publikuj kod; podać wyjaśnienie. – reformed
- 1. Określanie wymiarów CCLabelTTF:
- 2. Określanie liczby parametrów w lambda
- 3. Określanie liczby plików w katalogu
- 4. Określanie liczby wierszy w zakresie
- 5. php dwie tablice wymiarów
- 6. Określanie liczby bajtów używanych przez zmienną
- 7. Maksymalna liczba wymiarów w tablicy Javy
- 8. Zaznaczanie oddzielnych wymiarów tablicy za pomocą adnotacji
- 9. Określanie odpowiedniej liczby neuronów dla sieci neuronowej
- 10. Określanie maksymalnej liczby kolumn z sqlite3
- 11. Określanie sąsiednich regionów w tablicy numpy
- 12. Zliczanie liczby elementów w tablicy
- 13. Optymalnie przekazanie wymiarów tablicy o stałym rozmiarze w julia
- 14. Zmieniając znak liczby w PHP?
- 15. Określanie liczby stron w każdej tabeli SQL bez użycia DBCC
- 16. Łatwy sposób na zwinięcie końcowych wymiarów tablicy numpy?
- 17. Implementacja Mergesorta. Zliczanie liczby inwersji w tablicy
- 18. Podnoszenie liczby wpisów w tablicy json
- 19. Dlaczego nie mogę całkowicie pominąć wymiarów podczas inicjowania wielowymiarowej tablicy?
- 20. Umieszczanie wartości tablicy PHP w tablicy javascript?
- 21. Co oznacza "długość" wymiarów "[1] nie równa się zasięgu tablicy"?
- 22. Odfiltruj liczby w łańcuchu znaków w php
- 23. NHibernate 3 stronicowanie i określanie całkowitej liczby wierszy
- 24. Format liczby PHP bez przecinka
- 25. Jak wyjątek tablicy w php
- 26. Ujemny indeks tablicy w PHP
- 27. PHP zastąpienia znaków w tablicy
- 28. implozji tablicy asocjacyjnej w PHP
- 29. Wyprowadzanie tablicy Mysql w PHP
- 30. PHP: Najczęstsze wartość w tablicy
Możliwy duplikat [Czy istnieje sposób aby dowiedzieć się, jak „głęboko” tablicą PHP jest?] (http://stackoverflow.com/questions/ 262891/is-there-a-way-to-find-out-how-deep-a-php-array-is) – jeremy