Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Saber si un arreglo contiene datos (https://www.clubdelphi.com/foros/showthread.php?t=38652)

lucasarts_18 21-12-2006 18:18:00

Saber si un arreglo contiene datos
 
Hola a todos:

¿Cómo puedo saber si un arreglo contiene indices con datos?

Ya que mando a imprimir el arreglo y me muestra array, he intentado usando isset y otras parafernalias, pero aún no logro hacer lo que quiero...

Desde ya muchas gracias....

dec 22-12-2006 05:44:05

Hola,

Cuando "imprimes" una variable de tipo Array con PHP lo que se obtiene, lo que se ve es el tipo de la variable en cuestión. Es decir:

Código PHP:

$variable = new Array(123);

echo 
$variable// Imprime "Array" 

Para imprimir una variable de tipo "Array" de forma que tú puedas leer el resultado prueba a utilizar la función "print_r".

Lo cierto es que hay no pocas funciones para tratar con "Arrays" en PHP.

Cita:

Empezado por Lucas
¿Cómo puedo saber si un arreglo contiene indices con datos?

Tal vez baste con utilizar la función "count", que "Cuenta los elementos de una matriz o propiedades de un objeto".

roman 24-12-2006 05:32:27

A mi me gusta empty:

Código PHP:

<?
if (empty($a))
{
  echo 
'El arreglo no tiene elementos';
}
else
{
  echo 
'El arreglo tiene elementos';
}
?>

// Saludos

lucasarts_18 26-12-2006 15:04:44

Hola, Roman y Dec..

Probé con ambas soluciones y nunguna me resulta ya que siempre me devuelve que no contiene datos.

Al momento de imprimir el arreglo me lo muestra de esta manera..

Código PHP:

Array ( [USUARIOS] => Array ( [0] => Array ( [run] => 15070197-[npi]  => 006682-[apellidos] => AARON ERIC [nombres] => GARCIA ANDUNCE [grado] => CF ) ) ) 

este caso cuando el arreglo contiene datos, para cuando no tienen datos lo deveulve así

Código PHP:

Array ( [USUARIOS] => Array ( ) ) 

y ambos casos no me ha servido, el código php es el siguiente..

Código PHP:

$datosUsuario = array();
      
$datosUsuario MuestraUsuarios_SIGA($dbh,$run);
      
      
print_r ($datosUsuario);
      if (empty(
$datosUsuario) ) 
          echo 
'El arreglo contiene datos';
      else 
        echo 
'El arreglo no contiene datos';
      
      exit; 

Bueno....ese es mi problema ahora...gracias...:)

lucasarts_18 26-12-2006 15:29:52

Hola:

Por ahora he resuleto el problema pasandole obligatoriamente un run existente a la función Muestrausuarios_SIGA

Código PHP:

$datosUsuario MuestraUsuarios_SIGA($dbh,$run); 

:cool:

roman 26-12-2006 21:40:32

Cita:

Empezado por lucasarts_18
siempre me devuelve que no contiene datos

¿No será alrevés, que siempre te devuelve que contiene datos? Porque eso es lo que sucede puesto que

Código PHP:

Array ( [USUARIOS] => Array ( ) ) 

sí contiene datos; se trata de una arreglo con un elemento cuyo valor es un arreglo vacío. En otras palabras, empty($a['USUARIOS']) es true pero empty($a) es false.

// Saludos

lucasarts_18 27-12-2006 16:55:03

Cita:

Empezado por roman
sí contiene datos; se trata de una arreglo con un elemento cuyo valor es un arreglo vacío. En otras palabras, empty($a['USUARIOS']) es true pero empty($a) es false.

Ahh...verdad, gracias roman, a decir verdad esto de los arreglos es lo mas que me ha costado del php junto al Html, es un nuevo mundo que me cuesta adaptarme, pero ahí vamos...:D

roman 27-12-2006 19:16:40

Sin embargo, a poco que te acostumbres, estoy seguro que te encantarán los arreglos. Es uno de los aspectos que más me gustan de php; primero por que son arreglos asociativos, lo que nos permite tener como índices, cadenas de texto, que muchas veces son más claras que un índice numérico. Lo más cercano en Delphi son los TStringList y su propiedad Values. Pero además está la enorme cantidad de funciones para manipularlos y hacer con ellos maravillas :)

// Saludos


La franja horaria es GMT +2. Ahora son las 21:09:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi