2016-09-13 5 views
1

Ich habe ein Array wie diese:PHP Wie man einen einzelnen Wert von diesem Array druckt?

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

Und ich will ich den „Name“ Wert in der Seite drucken, so dass diese beiden Zeilen Code geschrieben:

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

Aber wenn ich lade die Seite i erhalten diesen Fehler:

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

ich habe versucht, wi th andere Lösungen wie:

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

Aber keiner arbeitet

Irgend jemand kann mir helfen?

+4

Sie werden irgendwo ein [unserialize] (http://php.net/unserialize) benötigen. –

+1

Ihr Array enthält serialisierte Werte. –

Antwort

1

Sie benötigen das Array deserialisieren, wie in den Kommentaren gesagt:

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

Sie es in einer Schleife setzen können alle Werte in einem multidimensionalen Array zu erhalten:

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

und dann Greifen Sie darauf zu:

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

Meinten Sie:

<?php 

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

Ansonsten

<?php 

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

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

Laut dem Wordpress-Handbuch von [get_post_data()] (https://developer.wordpress.org/reference/functions/get_post_meta/) wird '$ single' auf false gesetzt, da * vermutlich * mehr Werte vorhanden sind. – Xorifelse

1

Als Jon Stirling und u_mulder sagte: Ihr Array enthält einen serialisierten Wert und die einzige in Ihrem Beispiel ist der Index 0 gezeigt. Also aufgrund der Tatsache, dass Ihre Beispiel-Zeichenfolge mit ....etc... kurz geschnitten ist, kann ich nur auf das, was bekannt ist, antworten.

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

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

Dies sollte den Trick tun.

+0

Danke das ist was ich brauche. – FRA

Verwandte Themen