Meta serileştirilmiş bir diziden veri nasıl çıkarılır?


23

Verileri özel bir meta alanda bir dizi olarak saklayan bir XML - WP kod çözücü komut dosyası buldum. Bilgileri çıkarmanın en iyi yolu nedir?

Örneğin, "Üretilen" alanını "KANADA" olarak nasıl görüntüleyebilirim?

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

Yukarıdaki örnek kod, üzerinden üretildi print_r(get_post_custom($post->ID));.

Ne kadar küçük olursa olsun, içgörüleri gerçekten takdir ediyorum. :)


1
Bir soruyu aşağı oylayacaksanız en azından nedenini söyleyecek kadar yetişkin olun. Php öğrenmek için çok çalışıyorum. Bu, çoğu programcı için temel bir şey olabilir, ancak bir tasarım geçmişinden geliyorum.
m-torin

Yanıtlar:


35

Diziye dönüştürmek için unserialize () işlevini kullanın .

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

Düzenleme - İlgili düşünce - bu gibi seri hale getirilmiş meta verileri saklarken akılda tutulması gereken bir şey, eğer bu sizin için bir endişe ise, bu verileri sorgularda kullanma yeteneğinizi sınırlamanızdır. örneğin, "Kanada'da üretilen tüm parçaları göster bana" gibi sorular yazmak veya motor kimliği ile sonuçları sipariş etmek o kadar kolay değildir, çünkü bu veriler bir alanda bir sürü başka veriyle saklanır.


@ M.Taylor - Hoşgeldiniz, serileştirilmiş veriler ve sorgular hakkında eklediğim düzenlemeyi kontrol edin, sizin için bir sorun olduğundan emin değilsiniz, ama olabilir.
Milo

Veride arama yapabilme yeteneğini kaybetmek konusunda çok şey ifade ediyorsun. Senaryoyu yazmadım diye serileştirilmiş bir dizide nasıl saklayamayacağımı araştırmam gerekecek.
m-torin

@ M.Taylor Yapma, üzgünüm. Eminim burada biri yardım edebilir.
Milo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.