PHP如何从数组中打印单个值


PHP How to print a single value from this Array?

我有一个像这样的数组:

阵列([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']);