問題描述
我發現一個 XML 到 WP 解碼器指令碼,將資料作為陣列儲存在自定義元欄位中。提取資訊的最佳方法是什麼?
例如,如何將”Manufactured in” 欄位顯示為”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";}} )
以上示例程式碼是透過 print_r(get_post_custom($post->ID)); 生成的。
我非常感謝任何見解,無論多麼小。 🙂
最佳解決方案
使用 unserialize()將其轉換為陣列。
$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];
編輯相關的想法 – 當儲存像這樣的序列化的後設資料時,要記住的是,您限制了在查詢中使用該資料的能力,如果這是您所關心的問題。例如,編寫諸如 「顯示加拿大製造的所有零件」 等查詢或者透過引擎 ID 排序結果並不容易,因為該資料在一個欄位中被一堆其他資料所包圍。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。