Come estrarre dati da una matrice serializzato posta meta?
Domanda
Ho trovato un XML per WP decoder script che memorizza i dati come array in un campo personalizzato meta. Qual è il modo migliore per estrarre le informazioni?
Per esempio come avrei potuto visualizzare il "Fabbricato in" campo come "Canada"?
[_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";}} )
Il codice di esempio di cui sopra è stato prodotto tramite print_r(get_post_custom($post->ID));
.
apprezzo davvero avere una visione, non importa quanto piccolo. :)
Soluzione
unserialize () per convertirlo in un array.
$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];
Modifica - Related-pensiero qualcosa da tenere a mente quando la memorizzazione di metadati serializzati come questo è di limitare la possibilità di utilizzare tali dati nelle query, se questo è un problema per voi. per esempio, non è così facile da query di scrittura come "mostrarmi tutte le parti prodotte in Canada", o risultati Ordina per motore id, dal momento che i dati è nascosto con un gruppo di altri dati in un campo.