Foros del Web » Programando para Internet » PHP »

Extraer datos de un Array legible en PHP

Estas en el tema de Extraer datos de un Array legible en PHP en el foro de PHP en Foros del Web. Después de usar un formulario, éste guarda los registros en una tabla. Uno de los registros me guarda automaticamente un array, pero me lo guarda ...
  #1 (permalink)  
Antiguo 26/09/2012, 10:47
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Extraer datos de un Array legible en PHP

Después de usar un formulario, éste guarda los registros en una tabla. Uno de los registros me guarda automaticamente un array, pero me lo guarda en este formato

Código HTML:
Array
(
    [0] => Array
        (
            [IDACQUIRER] => 12
            [COMERCE] => 1234
            
        )

    [1] => Array
        (
            [acquirerId] => 12
            [commerceId] => 1234
            [Amount] => 100000
            [CurrencyCode] => 123
            [OperationNumber] => 12
            [language] => EN
            [reserved11] => 3
            [reserved12] => 2
            [reserved13] => 898
            [reserved14] => 1796
            [reserved15] => 1
            [reserved16] => 2
            [reserved17] => 1086
            [reserved18] => 2172
            [errorCode] => 2300
            [errorMessage] => Cancelled in PASS 1
            [authorizationResult] => 55
        )
)
Me refiero a formato a que los array están entre corchetes [] y no en comillas simples.....

Lo que quiero es tomar un valor de este array, luego hacerle un echo de PHP y se muestre en la pagina.

Lo que hago es guardar este array en una variable por ejemplo: "matriz", mas o menos asi

Código PHP:
$matriz = array
(
    [
0] => array
        (
            [
IDACQUIRER] => 12
            
[COMERCE] => 1234
            
        
)

    [
1] => array
        (
            [
acquirerId] => 12
            
[commerceId] => 1234
            
[Amount] => 100000
            
[CurrencyCode] => 123..... etc etc etc.... 
Para tomar el datos por ejemplo.... "[Amount] => 100000", tendría que hacer esto:

Código PHP:
echo $matriz['1']['Amount']; 
Pero me sale este error: "Fatal error: Cannot use string offset as an array in /home/xxxxx/public_html/algo/algo.php on line 126"

Alguna forma de cambiar el array
Código HTML:
Array
(
    [0] => Array
        (
            [IDACQUIRER] => 12
            [COMERCE] => 1234
            
        )

    [1] => Array
        (
            [acquirerId] => 12
            [commerceId] => 1234
            [Amount] => 100000 
        )
)
a esto............ automaticamente??, es decir, con comillas simples y coma al final de cara dato????
Código HTML:
array
(
    '0' => array
        (
            'IDACQUIRER' => 12,
            'COMERCE' => 1234
            
        ),

    '1' => array
        (
            'acquirerId' => 12,
            'commerceId' => 1234,
            'Amount' => 100000 
        )
)
Gracias por su gentil ayuda :)
  #2 (permalink)  
Antiguo 26/09/2012, 10:48
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Extraer datos de un Array legible en PHP

Porque un numero entre comillas?
  #3 (permalink)  
Antiguo 26/09/2012, 11:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer datos de un Array legible en PHP

El primero formato que muestras es una representación textual de un arreglo, seguramente producido con print_r().

Si no tienes dichos datos de forma natural no hay forma de convertir dicho texto en un array, así de sencillo es esto.

Aquí el error es humano, ¿a quien se le ocurre guardar un dato en dicho formato que es irrevertible?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 26/09/2012, 11:11
Avatar de jonasmz  
Fecha de Ingreso: agosto-2009
Ubicación: En frente de la compu :P
Mensajes: 32
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Extraer datos de un Array legible en PHP

Quitale las comillas a ese indice numérico, las comillas sirven para los arrays asociativos. Te muestro:
Arrays numericos:

$matriz = array("pos 1", "pos2", "pos3");
Echo $matriz[1]; // pos 1
Echo $matriz[2]; //pos 2
......

Arrays asociativos:
$matriz = array("one"=>"pos 1", "two"=>"pos2");
Echo $matriz["one"]; //pos 1
Echo $matriz["two"]; // pos 2

Esos son los metodos correctos. Espero que te sirva.

Edito y agrego:
en tu caso deberias invocar el array de la siguiente manera:

echo $matriz[1]['Amount'];

Última edición por jonasmz; 26/09/2012 a las 11:19
  #5 (permalink)  
Antiguo 26/09/2012, 13:21
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Extraer datos de un Array legible en PHP

pateketrueke... tienes razón, estos datos son guardados desde un print_r().

En realidad es un array log, lo guardo así para visualizar "humanamente" los registros logs que se generen, pero luego me di cuenta que necesito luego mostrar algunos de esos datos....

En fin, como podré guardar ese array de tal forma que luego pueda extraer algunos datos y que sea legible en PHP??

Gracias nuevamente
  #6 (permalink)  
Antiguo 26/09/2012, 13:24
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Extraer datos de un Array legible en PHP

Cita:
Iniciado por jonasmz Ver Mensaje
Quitale las comillas a ese indice numérico, las comillas sirven para los arrays asociativos. Te muestro:
Arrays numericos:

$matriz = array("pos 1", "pos2", "pos3");
Echo $matriz[1]; // pos 1
Echo $matriz[2]; //pos 2
......

Arrays asociativos:
$matriz = array("one"=>"pos 1", "two"=>"pos2");
Echo $matriz["one"]; //pos 1
Echo $matriz["two"]; // pos 2

Esos son los metodos correctos. Espero que te sirva.

Edito y agrego:
en tu caso deberias invocar el array de la siguiente manera:

echo $matriz[1]['Amount'];
Lo he intentado con comillas, sin comilla, corchetes ... y nada de nada.... El problema es que no esta guardado de forma natural sino a travez de un print_r()
  #7 (permalink)  
Antiguo 26/09/2012, 15:18
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Extraer datos de un Array legible en PHP

O arreglas a guardar un array codificado con serialize o json_encode o bien, tendrás que pasar dicha cadena por eval para que se convierta en array, cosa que no se aconseja.
  #8 (permalink)  
Antiguo 27/09/2012, 09:01
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Extraer datos de un Array legible en PHP

LISTO!!!!. Tema resuelto....

Recibo los array de forma natural y lo guardo asi

Código PHP:
$array "mi array aqui";
$log print_r(json_encode($array),true); 
Hago que $log guarde los datos en la tabla.

Luego los recupero asi:

Código PHP:
$logtxt "aqui el array guardado de la BD"
$datos json_decode($logtxt,true); 

//y según el ejemplo indicado arriba, imprimo el dato solicitado 
echo $datos[1]["Amount"]; 
Muchas Gracias todos por su ayuda!!!
  #9 (permalink)  
Antiguo 27/09/2012, 09:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer datos de un Array legible en PHP

De hecho el print_r() está de sobra.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: arrayasociativos
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 16:16.