我试图获取wordpress网站上所有网页的列表并访问其ID。我可以使用get_pages()函数获取页面列表。当我尝试使用键访问任何元素时,它无法解释。
例如,以下代码不起作用:
$pages = get_pages();
foreach ($pages as $page) {
$ID = $page['ID'];
}
但是,如果我这样做:
$pages = get_pages();
foreach($pages as $page) {
foreach ($page as $key => $value) {
echo("<p>$key</p>");
}
}
它清楚地将ID打印为有效密钥。
我做错了什么?
答案 0 :(得分:3)
由于get_pages()
返回“页面”数组,$page
循环中的对象foreach
将成为页面对象,因此您需要使用->
来解决{ {1}}属性。
ID
答案 1 :(得分:2)
当你这样做时
$pages = get_pages();
foreach($pages as $page) {
foreach ($page as $key => $value) {
echo("<p>$key</p>");
}
}
因此上面的$ pages成为关联数组,您可以使用关联数组访问键。关联数组在php中用于KEY VALUE PAIR
所以你可以使用
$pages = get_pages();
foreach ( $pages as $page ) {
echo $page->ID;
}
答案 2 :(得分:-1)
给出一个数组的例子(多维,键 - >值,简单数组等)。 我们假设:
//simple array parsing
$pages = array('one','two','three');
foreach ($pages as $page) {
echo "Current value: $page.\n";
}
//key-> value parsing
$pages = array(
"one" => 1,
"two" => 2,
"three" => 3
);
foreach ($pages as $k => $v) {
echo "\$pages[$k] => $v.\n";
}
//multidimensional array parsing
$pages = array();
$pages[0][0] = "one";
$pages[0][1] = "two";
$pages[1][0] = "three";
foreach ($pages as $v1) {
foreach ($v1 as $v2) {
echo "$v2\n";
}
}
参见[link] http://php.net/manual/en/control-structures.foreach.php
上的参考资料