web-dev-qa-db-ger.com

Wie extrahiere ich Daten aus einem Post-Meta-Array?

Ich habe ein XML to WP Decoder-Skript gefunden, das die Daten als Array in einem benutzerdefinierten Metafeld speichert. Was ist der beste Weg, um die Informationen zu extrahieren?

Wie könnte ich beispielsweise das Feld "Hergestellt in" als "KANADA" anzeigen?

[_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";}} )

Der obige Beispielcode wurde über print_r(get_post_custom($post->ID)); erstellt.

Ich schätze jede Einsicht, egal wie klein sie ist. :)

19
torinagrippa

Verwenden Sie unserialize () , um es in ein Array zu konvertieren.

$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];

Bearbeiten - Zugehöriger Gedanke - Beachten Sie beim Speichern von so serialisierten Metadaten, dass Sie die Möglichkeit einschränken, diese Daten in Abfragen zu verwenden, wenn dies für Sie von Belang ist. Beispielsweise ist es nicht so einfach, Abfragen wie "Alle in Kanada hergestellten Teile anzeigen" oder Ergebnisse nach Motor-ID zu ordnen, da diese Daten mit einer Reihe anderer Daten in einem Feld verstaut sind.

26
Milo