C'è un modo per determinare quante dimensioni ci sono in un array PHP?Determina il numero di dimensioni in un array PHP
risposta
Nizza problema, qui è 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;
}
Questo non è completamente corretto. Perché verifica solo il primo elemento degli array. Quindi questo dà il risultato atteso solo quando sei sicuro che distribuisca in modo uniforme array di array. Dovrai scorrere tutti gli elementi per conoscere veramente le profondità variabili. (O forse un algoritmo spiffy traversal di cui non sono a conoscenza) –
si può provare questo:
$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);
Bello, grazie –
Come la maggior parte linguaggi procedurali e object-oriented, PHP non implementa nativamente array multidimensionali - è usa matrici annidate.
La funzione ricorsiva suggerita da altri è confusa, ma la cosa più vicina a una risposta.
C.
Questo funziona per array in cui ogni dimensione non hanno lo stesso tipo di elementi. Potrebbe essere necessario attraversare tutti gli elementi.
$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; }
è stato corretto in Some issues with jumping from one function to another in a loop in php
Questa doppia funzione andrà a l'ultima dimensione di ciascun array in $ a, e quando il suo non è un allineamento più sarà eco il numero di cicli che ha fatto a arrivare con un delimitatore |. Lo svantaggio di questo codice è solo echo e non può essere restituito (in modo normale).
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);
Qui ho fatto una funzione con ritorno, ma .. il suo ritorno da un html poi "GET" torna a PHP sul tasto di scatto .. non so altro modo per farlo funzionare .. quindi basta chiamare il vostro array per $ a e premere il pulsante:/
$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.";
Non inserire solo il codice; fornire una spiegazione. – reformed
- 1. php - push array in array - numero chiave
- 2. array con diverso numero di dimensioni
- 3. È possibile contare il numero di dimensioni in una matrice?
- 4. Trova il numero di oggetti in un array json
- 5. Determina il numero di caratteri troncati in UILabel
- 6. Determina righe/colonne necessarie dato un numero
- 7. Aggiornamento di un array multidimensionale in PHP
- 8. Inserimento di valori di array PHP in un array javascript?
- 9. Ottenere dimensioni in memoria di un oggetto in PHP?
- 10. Bash dimensioni array associativo
- 11. affidabile determinare il numero di elementi in un array
- 12. Dimensioni di un array di byte golang
- 13. Esperienza con PHP QuickHash per array di grandi dimensioni
- 14. Split un array in N Array - PHP
- 15. Contare il numero di occorrenze di un numero in un array ordinato
- 16. Determina in modo programmatico il numero di tratti in un carattere cinese?
- 17. Trova multipli di un numero in PHP
- 18. Cambiando il segno di un numero in PHP?
- 19. Julia: Trasformare un array di array in un array a 2 dimensioni
- 20. trovare il numero duplicato in un array che non ha duplicati ad eccezione di un numero
- 21. Dividi array di grandi dimensioni in Array di due elementi
- 22. Come inizializzare un array di dimensioni modello?
- 23. Ordinamento di un array associativo in PHP
- 24. array di merge PHP per il valore
- 25. PHP: misura le dimensioni in kilobyte di un oggetto/matrice?
- 26. Come convertire un numero intero in array di byte in php
- 27. Come convertire un intero in un array in PHP?
- 28. numero divisi in gruppi di uguali dimensioni
- 29. Convertire PHP stringa di array in un array
- 30. PHP: come si determina ogni ennesima iterazione di un ciclo?
Eventuali duplicati di [c'è un modo per scoprire come "profondo" un array PHP è?] (http://stackoverflow.com/questions/ 262891/is-there-a-way-to-find-out-how-deep-a-php-array-is) – jeremy