我有一个像这样的数组:
数组([0] => a:39:{s:2:“id”; s:6:“703981”; s:4:“name”; s:10:“Bilton Apt”; s :7:“地址”; s:25:“Hart Blvd,Paradise Acres”; s:3:“zip”; s:2:“PO”; s:10:“city_hotel”; s:11:“Montego。 ...等等...
我想在页面中打印“name”值,所以我写了这两行代码:
$item = get_post_meta($post->ID, '_ihfc_hotel');
echo $item['name'];
但是当我加载页面时,我收到此错误:
注意:未定义索引:/ Applications / MAMP / htdocs / wp_test_csv / wp-content / themes / twenty ....等名称
我试过其他解决方案,如:
echo $item[0]['name']; or echo $item[0]->['name']:
但没有效果
有人可以帮助我吗?
答案 0 :(得分:1)
正如Jon Stirling和u_mulder所说,你的数组包含一个序列化值,你的例子中唯一显示的是索引0。
因此,由于您的示例字符串被....etc...
缩短了,我只能回答已知的内容。
$data = unserialize($item[0]);
print_r($data);
echo $data['name'] // Bilton Apt
这应该可以做到这一点。
答案 1 :(得分:1)
您需要反序列化数组,如评论中所述:
$ar = unserialize($item[0]);
echo $ar['name'];
您可以将其置于循环中以获取多维数组中的所有值:
foreach($item as $key=>$value){
$ar[$key] = unserialize($value);
}
然后访问它:
echo $ar[0]['name'];
答案 2 :(得分: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']);