¿Hay una manera de determinar cuántas dimensiones existen en una matriz PHP?Determinar el número de dimensiones en una matriz PHP
Respuesta
Niza problema, aquí es 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;
}
Esto no es del todo correcto. Porque solo prueba el primer elemento de las matrices. Así que esto sólo se da el resultado esperado cuando se está seguro de que es un distribuye uniformemente la matriz de matrices. Tendrás que recorrer todos los elementos para conocer realmente las profundidades variables. (O tal vez algún algoritmo de recorrido spiffy No soy consciente de) –
puede probar esta:
$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);
uno de los buenos, gracias –
Como la mayoría de los lenguajes de procedimientos y orientado a objetos, PHP no implementa de forma nativa matrices multidimensionales - se usa matrices anidadas.
La función recursiva sugerido por otros son sucios, pero lo más parecido a una respuesta.
C.
Esta funciona para matrices donde cada dimensión no tiene el mismo tipo de elementos. Puede necesitar atravesar todos los elementos.
$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; }
se corrigió en Some issues with jumping from one function to another in a loop in php
Esta doble función se destinará a la última dimensión de cada matriz en $ a y cuando no es una matriz más que resonará el número de bucles que le hizo a llegar allí con un delimitador |. La desventaja de este código es sólo ecos y no puede ser devuelto (en modo normal).
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);
Aquí hice una función con retorno, pero .. es un regreso de html a continuación, "" volver a php en el clic de botón .. No sé de ninguna otra manera de hacer que funcione .. por lo que sólo el nombre de su matriz para un $ y pulsa el botón:/
$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.";
No se limite a publicar código; proporciona una explicación – reformed
- 1. ¿Es posible contar el número de dimensiones en una matriz?
- 2. Número máximo de dimensiones en una matriz Java
- 3. Determinar las dimensiones de CCLabelTTF
- 4. Convertir matriz 2 dimensiones
- 5. ¿Cómo puedo determinar si una matriz está vacía en PHP?
- 6. iteración matriz de una dimensión como matriz de dos dimensiones
- 7. determinar de manera fiable el número de elementos en una matriz
- 8. ¿Cómo copio una matriz de 2 dimensiones en Java?
- 9. El número más frecuente en una matriz
- 10. Determinar el número de parámetros en una lambda
- 11. dos dimensiones matriz rebanada en C#
- 12. PHP obtener dimensiones del archivo SWF
- 13. Adición de matrices con diferente número de dimensiones
- 14. ¿Cómo determinar el número de bits similares?
- 15. Iterar a través de una matriz de 2 dimensiones C#
- 16. matriz de dos dimensiones para una sola dimensión y viceversa
- 17. Cómo cambiar el orden de las dimensiones de la matriz
- 18. php obtener el número de una cadena
- 19. Actualización de una matriz multidimensional en PHP
- 20. orden de las dimensiones al crear una matriz multidimensional
- 21. Determinar Referer en PHP
- 22. número Búsqueda de zonas en una matriz
- 23. ¿Cómo determinar si una clave es una letra o número?
- 24. determinar la ocurrencia más común en una matriz
- 25. ¿Cómo obtengo las dos últimas dimensiones de una matriz N-D como una matriz 2D?
- 26. Asignar matriz dinámica con dimensiones interdependientes
- 27. C: encontrar el número de elementos en una matriz []
- 28. ¿Cómo obtener el número de columnas en una matriz?
- 29. ¿Cómo encontrar el número de inversiones en una matriz?
- 30. Cómo determinar si el valor es una fecha en PHP
duplicado posible de [¿hay una manera de averiguar cómo una matriz PHP "profundo" es?] (http://stackoverflow.com/questions/ 262891/es-no-a-way-to-find out how-profundo-a-php-array-es) – jeremy