无法使用密钥访问数组中的元素

时间:2017-08-08 09:04:45

标签: php wordpress

我试图获取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打印为有效密钥。

我做错了什么?

3 个答案:

答案 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

上的参考资料