2016-09-13 15 views
1

が、私はこのような配列があります。PHPこの配列から単一の値を出力する方法は?

Array ([0] => a:39:{s:2:"id";s:6:"703981";s:4:"name";s:10:"Bilton Apt";s:7:"address";s:25:"Hart Blvd, Paradise Acres";s:3:"zip";s:2:"PO";s:10:"city_hotel";s:11:"Montego ....etc...

を、私はページ内の「名前」の値を印刷したいので、私はこの2行のコードを書いた:

$item = get_post_meta($post->ID, '_ihfc_hotel'); 
echo $item['name']; 

が、私はロードを私はこのエラーが発生したページ:

お知らせ:未定義のインデックス:/Applications/MAMP/htdocs/wp_test_csv/wp-content/themes/twenty....etc

で名前

私はのwiを試してみました第その他のようなソリューション:

echo $item[0]['name']; or echo $item[0]->['name']: 

しかし、どれも

私を助けることができるいくつかのいずれかで動作しますか?

+4

どこかで[unserialize](http://php.net/unserialize)が必要です。 –

+1

配列にはシリアル化された値が含まれています。 –

答えて

1

コメントで語ったようあなたは、配列をアンシリアライズする必要があります。

$ar = unserialize($item[0]); 
echo $ar['name']; 

あなたは多次元配列内のすべての値を取得するためにループ内でそれを置くことができます。

foreach($item as $key=>$value){ 
    $ar[$key] = unserialize($value); 
} 

、その後、それにアクセスしてください:

echo $ar[0]['name']; 
0

もしかして:

<?php 

$name = get_post_meta($post->ID, '_ihfc_hotel', true); 
echo $name; 

をそれ以外の場合は

<?php 

$data = get_post_meta($post->ID, '_ihfc_hotel', true); 
$data = unserialize($data); 

var_dump($data); 
var_dump($data['name']); 
+0

[get_post_data()](https://developer.wordpress.org/reference/functions/get_post_meta/)のWordPressのマニュアルによれば、 '$ single'はfalseに設定されています。おそらくもっと値があります。 – Xorifelse

1

ジョン・スターリングとu_mulderがあなたの配列がシリアル化値が含まれており、あなたの例に示す一つだけがインデックス0で、言ったように。 あなたの例の文字列が....etc...で短くなっているという事実により、私は既知のものにしか答えることができません。

$data = unserialize($item[0]); 
print_r($data); 

echo $data['name'] // Bilton Apt 

これはそのトリックを行う必要があります。

+0

ありがとう、これは私が必要なものです。 – FRA

関連する問題