Foros del Web » Programando para Internet » PHP »

KEYS en Multiarrays PHP

Estas en el tema de KEYS en Multiarrays PHP en el foro de PHP en Foros del Web. Buenas, tengo el siguiente problema... resulta que tengo una matriz pero por clabe tipo string, y la recorro con un foreach y al hacer los ...
  #1 (permalink)  
Antiguo 09/11/2008, 00:01
Avatar de id_Master  
Fecha de Ingreso: abril-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
KEYS en Multiarrays PHP

Buenas, tengo el siguiente problema... resulta que tengo una matriz pero por clabe tipo string, y la recorro con un foreach y al hacer los cambio o instrucciones que necesito, necesito saber en que key quedo pero no se como, e intentado con key pero me trae es la del subarray y no la del mas arriba, aquí les dejo el código a ver si me pueden ayudar.

Código PHP:
function validar($datos)
{
 foreach(
$datos as $d){      

    
// Instrucciones para verificar que los datos estan correctos
    // si encuentra uno no correcto, entonces que guarde en una variable 
       // en que campo fue.
    // $quecampofue = ?¿;
        //
    // Esta funcion puede devolver verdadero o false
        // dependiendo si encontró un error o no
    // return true; 
    // return false;
}

}

$datos = array(    
    
"user" =>array ("dato"=>"Oscar","label"=>"Usuario"),
    
"pass" =>array ("dato"=>"mipass","label"=>"Contraseña")
    );


if(
validar($datos)){

// Aquí deben traer el nombre del campo donde se genero la validación 
// errónea, y escribir que ese campo esta malo, pero no e encontrado 
// la forma de que me guarde
// en una variable la kye del array donde ocurrió el error =S


echo "Error en el dato: ".$datos[$quedatofue]['label']

// Ejemplo de lo que debe imprimir:
// -> "Error en el dato: Usuario" <-




Gracias por sus respuestas :D
  #2 (permalink)  
Antiguo 09/11/2008, 04:03
 
Fecha de Ingreso: enero-2002
Mensajes: 132
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: KEYS en Multiarrays PHP

En la función validardatos en lugar de devolver return false o true, haces un return de la key o el indice del array, y lo recibes en la llamada en una variable.
También puedes hacer que devuelva false si no lo encontró, así sólo devolverías false en caso de no encontrar coincidencia o un valor en caso de encontrarla.
__________________
Un saludo, esperando ser de ayuda...
COMUN :stress:

Diseño y Programación
Tierra de Califas
http://www.tecnocodigo.com/dipro/
  #3 (permalink)  
Antiguo 09/11/2008, 15:17
Avatar de id_Master  
Fecha de Ingreso: abril-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
Respuesta: KEYS en Multiarrays PHP

jeje muchas grax pero ya encontre la solucion,

la solucion esta en el foreach,
en ves de
Código PHP:
 foreach($datos as $d){ 
seria:

Código PHP:
 foreach($datos as $key => $d){ 
la variable $key devolveria la key de donde se encuentre el puntero:

ejemplo:

Código PHP:
<?php
$datos 
= array(    
    
"user" =>array ("dato"=>"Oscar","label"=>"Usuario"),
    
"pass" =>array ("dato"=>"mipass","label"=>"Contraseña")
    );
 foreach(
$datos as $key => $d){
                  echo 
"Puntero: "$key"<br>";

}
?>
el resultado seria:

Cita:
Puntero: user
Puntero: pass

Cita:
Iniciado por comun Ver Mensaje
En la función validardatos en lugar de devolver return false o true, haces un return de la key o el indice del array, y lo recibes en la llamada en una variable.
También puedes hacer que devuelva false si no lo encontró, así sólo devolverías false en caso de no encontrar coincidencia o un valor en caso de encontrarla.
Yo tambien pense en eso, pero lo que pasa es que esa no es la unica variable que tengo que devolver, pero = muchas gracia spor el consejo :D!!
  #4 (permalink)  
Antiguo 09/11/2008, 20:27
Avatar de srsombrero  
Fecha de Ingreso: marzo-2008
Mensajes: 128
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: KEYS en Multiarrays PHP

Cita:
Iniciado por id_Master Ver Mensaje
jeje muchas grax pero ya encontre la solucion,

la solucion esta en el foreach,
en ves de
Código PHP:
 foreach($datos as $d){ 
seria:

Código PHP:
 foreach($datos as $key => $d){ 
la variable $key devolveria la key de donde se encuentre el puntero:

ejemplo:

Código PHP:
<?php
$datos 
= array(    
    
"user" =>array ("dato"=>"Oscar","label"=>"Usuario"),
    
"pass" =>array ("dato"=>"mipass","label"=>"Contraseña")
    );
 foreach(
$datos as $key => $d){
                  echo 
"Puntero: "$key"<br>";

}
?>
el resultado seria:






Yo tambien pense en eso, pero lo que pasa es que esa no es la unica variable que tengo que devolver, pero = muchas gracia spor el consejo :D!!


Hay una funcion tambien llamada array_key() que te devuelve la clave donde esta el valor del cual queres saber la clave.

Fijate que en la documentacion oficial la podes ver como una alternativa.
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:33.