我有一个像这样的数组:
阵列([0]=>:39:{:2:"id";销售:6:"703981";销售:4:"名字";销售:10:"比尔顿贴切";销售:7:"地址";销售:25:"哈特大马路,天堂英亩";销售:3:"zip";销售:2:"阿宝";销售:10:"city_hotel";销售:11:"蒙特哥…等…
我想在页面中打印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']:
但是都不工作
有人能帮我吗?
您需要反序列化数组,如注释所示:
$ar = unserialize($item[0]);
echo $ar['name'];
你可以把它放在一个循环中以获取多维数组中的所有值:
foreach($item as $key=>$value){
$ar[$key] = unserialize($value);
}
然后访问它:
echo $ar[0]['name'];
正如Jon Stirling和u_mulder所说,您的数组包含一个序列化的值,并且在您的示例中显示的唯一值是索引0。因此,由于您的示例字符串被....etc...
缩短,我只能回答已知的内容。
$data = unserialize($item[0]);
print_r($data);
echo $data['name'] // Bilton Apt
你的意思是:
<?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']);