Nueva pregunta

Pregunta:

Fecha: 04-04-2018 18:55:58 (En Español)

¿Cómo recorrer y mostrar los valores de un array bidimencional que es retornado de una función? [Resuelta]

Hola comunidad de developers, verán estoy iniciándome en php y estoy un poco trabado en el manejo de los arrays bidimencionales y multidimencionales; espero puedan ayudarme y nutrirme de conocimientos.

he hecho una función que recibe como parámetro un archivo con extensión csv, crea un array asociativo y al final la función retorna dicho array.

Aquí muestro la función:

function utf8_fopen_read($csv) { 
    $fc = iconv('windows-1250', 'utf-8', file_get_contents($csv)); 
    $handle=fopen("php://memory", "rw"); 
    fwrite($handle, $fc); 
    fseek($handle, 0); 
    return $handle; 
}

function archivoCsv ($filecsv) {

$info = array();

$file = utf8_fopen_read ($filecsv);

if ($file !== FALSE) {

    $filesname = fgetcsv($file, 1000, ",");

    $files_n = count($filesname);

    while (($infor = fgetcsv($file, 1000, ",")) !== FALSE) {

     // array asociativo
        for ($i = 0; $i < $files_n; $i++) {

            $inf[$filesname[$i]] = $infor[$i];
        }
    
        $info[] = $inf;

 
    }

    fclose($file);

 	return $info;
 	
				}

			}

$resultado = array();

$cSV = "personas.csv";
$resultado = archivoCsv($cSV);

echo "El array resultado tiene  " . count($resultado) . " sub-arrays <br><br>";

el archivo personas.csv tiene en su interior algo más o menos como esto:

Nombre,Apellido,Genero,Edad,EstadoCivil,Nacionalidad -> esta linea de aca son los nombres de los campos.
Antonio,Grajales,Masculino,35,Soltero,Argentino -> estos los valores
Mauricio,Paredas,Masculino,29,Casado,Uruguayo
Elena,Lopez,Femenino,32,Viuda,Colombiana
Evangelina,Ochoa,22,Soltera,Ecuatoriana


hasta aqui todo me va bien, pero he intentado utilizar el array $resultado como parametro en otra función, algo asi:

function nueva ($resultado)
{

//aqui he intentado con un for hacer que se muestren los valores del array resultado que estoy pasando como parametro pero me muestra error, algo referente a que tengo un problema en los argumentos para el for.
intente con un foreach y fue lo mismo
}

probablemente es un tonteria y se resulve facilmente, pero no se, estoy trabado. Alguien que pueda echarme una mano? Lo agradeceria mucho.


Etiquetas: Array PHP - CSV - Desarrollo - PHP - Pregunta Votos: 0 - Respuestas: 2 - Vistas: 11 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 04-04-2018 21:01:13 Lo que te puedo decir es que la funcion no va a detectar por si sola el arreglo solo con colocar el mismo nombre de la variable que lo contiene, debes llamarla y pasar la data que va a procesar por ejemplo:

    //Supuesto array que retorna una función
    $data = array(
        array("nombre"=>"Carlos","cedula"=>"1234","Ciudad"=>"Valencia"),
        array("nombre"=>"Manuel","cedula"=>"5678","Ciudad"=>"Maracay"),
    );
    
    //Función que se encargara de leer los datos
    function leer($item=null){
        if($item==null){
            return "No se ha enviado la data";
        }else if(!is_array($item)){
            return "No se ha enviado un arreglo";
        }else{
    
            foreach($item as $valor){
                echo "<li>Nombre: ".$valor['nombre']."</li>";
            }
    
        }
    }
    
    var_dump(leer($data));//Retorna la lista
    var_dump(leer("Data cualquiera")); //Retorna: No se ha enviado un arreglo
    var_dump(leer(""));//Retorna No se ha enviado la data
    


    ya el como vayas a procesar el arreglo dentro de la funcion va a depender del contexto o finalidad de esta. Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 04-04-2018 21:49:54 mmmm ok, entiendo, tiene razón por si sola no detectaria que data se esta pasando. Muchas gracias por esa demostración, me ayuda mucho en mi proceso de aprendizaje. Tengo otras dudas o más bien problemillas para resolver unas operaciones con un array pero ya las plasmare en una nueva pregunta, luego. Primero intentare resolverlo. Gracias por su aporte!   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com