Foros del Web » Programando para Internet » PHP »

Obtener datos del arreglo

Estas en el tema de Obtener datos del arreglo en el foro de PHP en Foros del Web. Tengo un problema que sé que es sencillo, pero que como sé poco de PHP estoy confundido. Estoy enviando un archivo de excel a través ...
  #1 (permalink)  
Antiguo 16/06/2014, 10:59
Avatar de alvarorojas4  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 28
Antigüedad: 15 años, 11 meses
Puntos: 0
Mensaje Obtener datos del arreglo

Tengo un problema que sé que es sencillo, pero que como sé poco de PHP estoy confundido.
Estoy enviando un archivo de excel a través de un formulario de subida de archivo,
el archivo que subo es:



y lo que tengo de resultado:
Código:
"3125946586","Mensaje Alvaro", "3214626767","Mensaje Andres",
el código que tengo es:

Código PHP:
<?php
include 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');
$data->read($_FILES["file"]["tmp_name"]);
for (
$i 1$i <= $data->sheets[0]['numRows']; $i++) {
    for (
$j 1$j <= $data->sheets[0]['numCols']; $j++) {
        echo 
"\"".$data->sheets[0]['cells'][$i][$j]."\",";
    }
    echo 
"\n";
}
?>

Ahora, necesito simplemente tomar el primer número, y el primer mensaje, guardarlos en una variable o algo para poder usarlos después.

Es decir simplemente tomar los datos específicos cada vez que recorra el for.
Les agradecería la ayuda :)
  #2 (permalink)  
Antiguo 16/06/2014, 11:33
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Obtener datos del arreglo

Cita:
Iniciado por alvarorojas4 Ver Mensaje
Tengo un problema que sé que es sencillo, pero que como sé poco de PHP estoy confundido.
Estoy enviando un archivo de excel a través de un formulario de subida de archivo,
el archivo que subo es:



y lo que tengo de resultado:
Código:
"3125946586","Mensaje Alvaro", "3214626767","Mensaje Andres",
el código que tengo es:

Código PHP:
<?php
include 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');
$data->read($_FILES["file"]["tmp_name"]);
for (
$i 1$i <= $data->sheets[0]['numRows']; $i++) {
    for (
$j 1$j <= $data->sheets[0]['numCols']; $j++) {
        echo 
"\"".$data->sheets[0]['cells'][$i][$j]."\",";
    }
    echo 
"\n";
}
?>

Ahora, necesito simplemente tomar el primer número, y el primer mensaje, guardarlos en una variable o algo para poder usarlos después.

Es decir simplemente tomar los datos específicos cada vez que recorra el for.
Les agradecería la ayuda :)
Necesitas array_chunk();

https://php.net/manual/es/function.array-chunk.php
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 16/06/2014, 12:49
Avatar de alvarorojas4  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 28
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Obtener datos del arreglo

Cita:
Iniciado por guardarmicorreo Ver Mensaje
Necesitas array_chunk();

[url]https://php.net/manual/es/function.array-chunk.php[/url]
Pero sigo sin poder obtener el dato concreto, no necesito que me retorne nada más. ¿No es posible? :S
  #4 (permalink)  
Antiguo 16/06/2014, 16:52
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Obtener datos del arreglo

Si tienes los datos en un arreglo, puedes acceder directamente a ellos:

$numero=$arreglo[0];
$mensaje=$arreglo[1];

Ahora bien, me pregunto si no el lector de excel que usas no tiene funciones para leer exactamente las celdas que quieres.
  #5 (permalink)  
Antiguo 16/06/2014, 17:30
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Obtener datos del arreglo

Cita:
Iniciado por alvarorojas4 Ver Mensaje
Pero sigo sin poder obtener el dato concreto, no necesito que me retorne nada más. ¿No es posible? :S
Me parece que no entiendes tu problema.

Si tienes un array indexado donde no hay diferencia entre cada grupo de datos, al acceder a ellos directamente ¿cómo le indicas al programa que acceda a un grupo de datos y no a otro si no hay diferencia entre un dato y otro?

Una vez proceses el array con array_chunk(); lo que puedes hacer es acceder a ellos como te dice ocp001a, es decir, por ejemplo, aunque debería ser con foreach, creo que el siguiente ejemplo no te dará problemas.

Código PHP:
Ver original
  1. <?php
  2. for($i=0; $i <= count($array); $i++){
  3.  
  4. echo $array[$i][0];
  5.  
  6. echo $array[$i][1];
  7.  
  8. }
  9. ?>
__________________
Ayúdame a hacerlo por mi mismo.
  #6 (permalink)  
Antiguo 18/06/2014, 13:02
Avatar de alvarorojas4  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 28
Antigüedad: 15 años, 11 meses
Puntos: 0
Mensaje Respuesta: Obtener datos del arreglo

Estoy obteniedo esto:
Código:
Array
(
    [1] => Array
        (
            [A] => 3125946586
            [B] => Mensaje de prueba Alvaro
        )

    [2] => Array
        (
            [A] => 3214626767
            [B] => Mensaje de prueba Andres
        )

)
pero no sé como obtener los dos datos, al hacer esto:


Código PHP:
for($i=1$i <= count($sheetData); $i++){
print_r($sheetData[$i][A]);
print_r($sheetData[$i][B]);

Obtengo esto:
Código:
Notice:  Use of undefined constant A - assumed 'A' in C:\xampp\htdocs\pexcel\2\index.php on line 37

3125946586

Notice:  Use of undefined constant B - assumed 'B' in C:\xampp\htdocs\pexcel\2\index.php on line 38

Mensaje de prueba Alvaro

Notice:  Use of undefined constant A - assumed 'A' in C:\xampp\htdocs\pexcel\2\index.php on line 37

3214626767

Notice:  Use of undefined constant B - assumed 'B' in C:\xampp\htdocs\pexcel\2\index.php on line 38

Mensaje de prueba Andres

¿Por qué tengo esos errores?
  #7 (permalink)  
Antiguo 18/06/2014, 13:12
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Obtener datos del arreglo

Te faltaron las comillas simples:
Código PHP:
Ver original
  1. for($i=1; $i <= count($sheetData); $i++){
  2.     print_r($sheetData[$i]['A']); //Falta comilla en A
  3.     print_r($sheetData[$i]['B']); // Falta comilla en B
  4. }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: arreglo, formulario, variable
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 09:15.