2010-11-14 79 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