2010-11-14 76 views
0

以下代碼返回「附接」到帖子圖像陣列查找元素...如何在結構化陣列

$args = array(
    'post_type' => 'attachment', 
    'numberposts' => -1, 
    'post_status' => null, 
    'post_parent' => 0 
); 
$excludeImages = get_posts($args); 

//的var_dump

var_dump ($excludeImages) 

//產量(一個陣列中的5中的第一項的片斷)

array(5){[0]=> object(stdClass)#194 (24) 
     {["ID"]=> int(46) 
     ["guid"]=> string(59) "http://localhost/mysite/wp-content/uploads/avatar.png"} 

的問題: 如何從任何給定的數組項中提取圖像的文件名(在這種情況下,avatar.png),其中模式總是[「guid」] = > string(int)「path-to-image」?

+0

我不是很熟悉var_dump表示法。這是說數組的第0個元素是一個ID和GUID屬性的對象?你有沒有忽略其他4個元素? – erisco 2010-11-14 00:07:15

+0

@Scott B:就像'$ excludeImages [0] - > guid'一樣簡單? – ajreal 2010-11-14 00:07:49

+0

@erisco:var_dump返回$ excludeImages的全部內容。數組中有5個項目。爲了簡單/可讀性,我剛剛包含了第一項內容。 – 2010-11-14 00:13:29

回答

0

stdClass的基本上是PHP的默認類(而不是基地!)。它沒有任何方法或屬性,它是一個空的類。它被用作容器。例如,您可以通過將數組轉換爲對象來創建這樣的類。

您的var_dump意味着您的數組的第一個元素是一個具有ID和guid屬性的stdClass對象。因此,該代碼將檢索完整的GUID:

$path = $excludeImages[0]->guid; 

如果你只想要檢索的文件名,你可以使用基名():

echo basename($path); // avatar.png 

你可以看到this question有關stdClass的更多信息。

+0

感謝文森特。而已。 – 2010-11-14 00:30:07