简体   繁体   中英

PHP How to print a single value from this Array?

I have an Array like this one:

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...

And i want to print in the page the "name" value so i wrote these two lines of code:

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

But when i load the page i receive this error:

Notice: Undefined index: name in /Applications/MAMP/htdocs/wp_test_csv/wp-content/themes/twenty....etc

i tried with other solutions like:

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

But none works

Some one can help me?

As Jon Stirling and u_mulder said, your array contains a serialized value and the only one shown in your example is index 0. So due the fact that your example string is cut short with ....etc... I can only answer to what is known.

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

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

This should do that trick.

You need to unserialize the array, as told in the comments:

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

You can put it in a loop to get all values in a multi dimensional array:

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

and then access it:

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

Did you mean:

<?php 

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

Otherwise

<?php 

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM