Foros del Web » Programando para Internet » PHP »

Cómo eliminar el índice [0] de un array?

Estas en el tema de Cómo eliminar el índice [0] de un array? en el foro de PHP en Foros del Web. Hola, como elimino el indice [0] de un array?, ya q estoy trabajando con un framework y en una consulta me tira el array de ...
  #1 (permalink)  
Antiguo 27/12/2013, 06:39
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Cómo eliminar el índice [0] de un array?

Hola,

como elimino el indice [0] de un array?, ya q estoy trabajando con un framework y en una consulta me tira el array de la forma $row[0][Modelo][campo]

Código:
Array
(
    [0] => Array
        (
            [User] => Array
                (
                    [id] => 35
                    [username] => cosmefulanito
                    [password] => ada015813ab95a4862bbe01414426153473e3a8b
                )

        )

)
y quiero q me quede:
Código:
Array
(
       [User] => Array
                (
                    [id] => 35
                    [username] => cosmefulanito
                    [password] => ada015813ab95a4862bbe01414426153473e3a8b
                )
)

La otra vez me lo explicaron en persona y me re olvide de la funcion de php q hace eso y no la encuentro por ningun lado.

Gracias
  #2 (permalink)  
Antiguo 27/12/2013, 06:55
Avatar de rflorez  
Fecha de Ingreso: diciembre-2013
Ubicación: Argentina
Mensajes: 14
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Cómo eliminar el índice [0] de un array?

Usa la funcion unset.
  #3 (permalink)  
Antiguo 27/12/2013, 07:11
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Cómo eliminar el índice [0] de un array?

Cita:
Iniciado por rflorez Ver Mensaje
Usa la funcion unset.
Pero unset() me elimina el indice y todo lo q este trae, o no?, me quedaria el array vacio por completo
  #4 (permalink)  
Antiguo 27/12/2013, 07:38
Avatar de rflorez  
Fecha de Ingreso: diciembre-2013
Ubicación: Argentina
Mensajes: 14
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Cómo eliminar el índice [0] de un array?

Cita:
Iniciado por reborn Ver Mensaje
Pero unset() me elimina el indice y todo lo q este trae, o no?, me quedaria el array vacio por completo
Ah, error mío por no leer bien.
Pero si deseas el valor, por qué no tomas el $array[0] y listo?
  #5 (permalink)  
Antiguo 27/12/2013, 07:57
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Cómo eliminar el índice [0] de un array?

Cita:
Iniciado por rflorez Ver Mensaje
Ah, error mío por no leer bien.
Pero si deseas el valor, por qué no tomas el $array[0] y listo?
Si, no tiene nada de malo, lo q pasa q hago una consulta comparando un valor con un campo, si existe me devuelve el array $array[0][Algo][algo]... hasta ahi todo, el tema es q si no existe, me tira el error "Undefined offset 0"... presiento q me traera problemas en un futuro usar esa forma.

En cambio, si le quito el indice [0] y me queda $array[Algo][algo] eso si me va a devolver algo y no me generara error, por mas q el campo q compare este vacio o no exista.

No se si se entiende lo q quiero hacer
  #6 (permalink)  
Antiguo 27/12/2013, 07:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cómo eliminar el índice [0] de un array?

Lo que estás obteniendo es un array de arrays, por lo que simplemente se lo maneja así.
¿Qué problema te causa usarlo tal y como es?
Otra forma sería simplemente copiar ese subindice en otro array...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/12/2013, 07:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cómo eliminar el índice [0] de un array?

Cita:
Si, no tiene nada de malo, lo q pasa q hago una consulta comparando un valor con un campo, si existe me devuelve el array $array[0][Algo][algo]... hasta ahi todo, el tema es q si no existe, me tira el error "Undefined offset 0"... presiento q me traera problemas en un futuro usar esa forma.
Eso es porque lo que devuelve una consulta a la base es eso: un array de arrays. Lo que no debes estar haciendo es validar que la consulta devuelva algo, y eso es otro problema. Es un error de programación no validar la salida de una consulta.
Un resultado de la query devolverá los encabezados pero no los registros, cuando la query es correcta pero no hay datos que cumplan las condiciones. Y eso es correcto. pero tu script debe verificar eso antes de intentar tareas con un array que puede estar vacío.
postea el código completo, y veremos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 27/12/2013, 08:11
Avatar de rflorez  
Fecha de Ingreso: diciembre-2013
Ubicación: Argentina
Mensajes: 14
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Cómo eliminar el índice [0] de un array?

Cita:
Iniciado por reborn Ver Mensaje
Si, no tiene nada de malo, lo q pasa q hago una consulta comparando un valor con un campo, si existe me devuelve el array $array[0][Algo][algo]... hasta ahi todo, el tema es q si no existe, me tira el error "Undefined offset 0"... presiento q me traera problemas en un futuro usar esa forma.

En cambio, si le quito el indice [0] y me queda $array[Algo][algo] eso si me va a devolver algo y no me generara error, por mas q el campo q compare este vacio o no exista.

No se si se entiende lo q quiero hacer
Pues valida que exista el indice 0 y luego tomas su valor.
Si no te convence, podrias poner un ejemplo para entenderte mejor?

Saludos
  #9 (permalink)  
Antiguo 27/12/2013, 08:32
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Cómo eliminar el índice [0] de un array?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Eso es porque lo que devuelve una consulta a la base es eso: un array de arrays. Lo que no debes estar haciendo es validar que la consulta devuelva algo, y eso es otro problema. Es un error de programación no validar la salida de una consulta.
Un resultado de la query devolverá los encabezados pero no los registros, cuando la query es correcta pero no hay datos que cumplan las condiciones. Y eso es correcto. pero tu script debe verificar eso antes de intentar tareas con un array que puede estar vacío.
postea el código completo, y veremos.
Si, eso fue lo q hice recien.

Código PHP:
    public function confirmar($id null){               

        
//Cuento cantidad de caracteres del id
        
$id40 strlen($id);
         
        
//Confirmo que el id de activacion contenga 40 caracteres
         
if($id40 != 40){
             
$this->Session->setFlash(__('La clave que ingresó no existe'));
             
$this->redirect(array('action' => 'index'));
         }else{           
         
           
$this->User->recursive 0;
           
//Busco todo con $id q viene por get
           
$searchIdActivate $this->User->find('all', array(
            
'conditions' => array('User.id_activate' => $id)));   
           
           
//Count para verificar q la clave existe. 0 = no existe, 1 = existe
           
$countIdActivate count($searchIdActivate);
           
           
//Si la clave no existe ($countIdActivate != 1) redirijo a posts
           
if(!$countIdActivate == 1){
               
$this->Session->setFlash(__('La clave de confirmación no existe o ya caducó 1'));
               
$this->redirect(array('controller' => 'posts''action' => 'index'));
           }
           
                
//Id de usuario a activar
                
$this->User->id $searchIdActivate[0]['User']['id'];

                
//Si el campo active es != 1, continuo. Si el campo active es = 1, la cuenta ya fue activada y redirijo
                
if(!$searchIdActivate[0]['User']['active'] == 1){

                   
//Update: "active" = 1 y "id_active" = 0
                   
$this->User->saveField('active'1);
                   
$this->Session->setFlash(__('Su cuenta ha sido activada. Gracias'));

                }else{
                    
$this->Session->setFlash(__('Esta cuenta ya fue activada. Ingrese con su usuario y contraseña'));
                    
//$this->redirect(array('action' => 'confirmar'));
                
}     

         }
    } 
Lo q hago con eso es obtener un id alfanumerico para activar una cuenta.
En ese metodo hago lo siquiente:
- Primero q el id contenga 40 caracteres antes de realizar cualquier consulta
- Segundo, hago la consulta a la db comparando ese id
- Hago un count con ese array, si es 0 no existe el id y si es 1 existe
- Hago un update al campo "active", lo paso de 0 a 1 y se activa la cuenta del usuario

y eso es lo q me salio por ahora... funciona bien
  #10 (permalink)  
Antiguo 27/12/2013, 10:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Cómo eliminar el índice [0] de un array?

Parece que estas usando CakePHP, el problema es como precisamente CakePHP te regresa los resultados, pero para que no te "falle" tu código, es simple con usar isset para comprobar, por ejemplo:

Código PHP:
Ver original
  1. if (isset($searchIdActivate[0])) {
  2.         // Activas y rediriges...
  3. } else {
  4.        // Error no existe el user...
  5. }

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:47.