¿Cómo extraer datos de una matriz meta serializada posterior?

15

Encontré un script de decodificador de XML a WP que almacena los datos como una matriz en un meta campo personalizado. ¿Cuál es la mejor manera de extraer la información?

Por ejemplo, ¿cómo puedo mostrar el campo "Fabricado en" como "CANADÁ"?

[_ttn_i_details] => Array ( [0] => a:5:{s:9:"engine_id";a:1:{i:0;s:9:"300000225";}s:15:"transmission_id";a:1:{i:0;s:6:"257691";}s:5:"plant";a:1:{i:0;s:23:"Oshawa, Ontario, Canada";}s:15:"Manufactured in";a:1:{i:0;s:6:"CANADA";}s:22:"Production Seq. Number";a:1:{i:0;s:6:"151411";}} )

El código de ejemplo anterior se produjo a través de print_r(get_post_custom($post->ID)); .

Realmente aprecio cualquier idea, no importa lo pequeña que sea. :)

    
pregunta torinagrippa 27.05.2011 - 16:21

1 respuesta

23

Use unserialize () para convertirlo en una matriz.

$mydata = 'a:5:{s:9:"engine_id";a:1:{i:0;s:9:"300000225";}s:15:"transmission_id";a:1:{i:0;s:6:"257691";}s:5:"plant";a:1:{i:0;s:23:"Oshawa, Ontario, Canada";}s:15:"Manufactured in";a:1:{i:0;s:6:"CANADA";}s:22:"Production Seq. Number";a:1:{i:0;s:6:"151411";}}';
$mydata = unserialize($mydata);
echo $mydata['Manufactured in'][0];

Editar - Pensamiento relacionado: algo que se debe tener en cuenta al almacenar metadatos en serie de esta manera es que usted limita su capacidad para usar esos datos en consultas, si eso le preocupa. por ejemplo, no es tan fácil escribir consultas como "muéstrame todas las piezas fabricadas en Canadá" o los resultados de los pedidos por identificación del motor, ya que esos datos se guardan con un montón de otros datos en un campo.

    
respondido por el Milo 27.05.2011 - 16:34

Lea otras preguntas en las etiquetas