Solo necesito verificar si una matriz tiene más de un elemento. Estoy tratando de hacerlo de esta manera:
if (isset($arr['1']))
la otra forma tradicional es
if (sizeof($arr)>1)
¿Cuál de los dos es mejor? En tales situaciones, ¿cómo debo juzgar entre dos métodos alternativos? ¿Hay algún medidor de verificación de rendimiento disponible para medir cuál es mejor?
Respuestas:
Utilizar este
O
sizeof()
es un alias paracount()
, funcionan igual.Editar: Responder a la segunda parte de la pregunta: las dos líneas de códigos en la pregunta no son métodos alternativos, realizan diferentes funciones. El primero verifica si se establece el valor en
$arr['1']
, mientras que el segundo devuelve el número de elementos en la matriz.fuente
if (sizeof($arr))
, que se tradujo aif (sizeof($arr) == 1)
, claramente, eso no verifica si la matriz tiene más de un elemento. Esta respuesta es correcta, y no veo ninguna razón para rechazar el voto, de ahí mi voto a favor.if(is_array($arr) && count($arr) > 1)
Solo para estar seguro de que $ arr es de hecho una matriz.
sizeof
es un alias decount
, prefiero usar count porque:fuente
$arr
es una cadena, volverá1
.sizeof()
es un alias paracount()
. Ambos funcionan también con no matrices, pero solo devolverán valores superiores a 1 si el argumento es una matriz o unCountable
objeto , por lo que está bastante seguro con esto.fuente
Obviamente, usar
count($arr) > 1
(sizeof
es solo un alias paracount
) es la mejor solución. Dependiendo de la estructura de su matriz, puede haber toneladas de elementos pero ningún$array['1']
elemento.fuente
Utilizar
count()
esta página lo explica bastante bien http://phparraylength.com/
fuente
Prefiero la
count()
función en lugar desizeOf()
ya quesizeOf()
es solo un alias decount()
y no significa lo mismo en muchos otros idiomas. Muchos programadores esperansizeof()
devolver la cantidad de memoria asignada.fuente
sizeof
vscount
Para verificar una matriz, empty () es mejor que sizeof ().
Si la matriz contiene una gran cantidad de datos. Llevará más tiempo contar el tamaño de la matriz. Pero verificar vacío siempre es fácil.
fuente
isset () solo comprueba si se establece una variable. No tiene nada que ver con el tamaño o lo que contiene la matriz
fuente
Supongo que $ arr es una matriz, entonces esto es lo que estás buscando
fuente
El primer método
if (isset($arr['1']))
no funcionará en una matriz asociativa.Por ejemplo, el siguiente código muestra "No, no más de uno".
fuente
Hago mi matriz en bucle y me llenan los valores predeterminados en consecuencia en Swift 4/5
fuente