我有一个数组数组,具有以下结构:array(array('page' => 'page1', 'name' => 'pagename1')array('page' => 'page2', 'name' => 'pagename2')array('page'...
我有一个数组数组,具有以下结构:
array(array('page' => 'page1', 'name' => 'pagename1')
array('page' => 'page2', 'name' => 'pagename2')
array('page' => 'page3', 'name' => 'pagename3'))
是否有一个内置函数可以返回仅包含“name”键的值的新数组?所以我会得到:
array('pagename1', 'pagename2', 'pagename3')
您可以扩展 ArrayIterator 类 并重写方法 mixed current(void)
.
class Foo extends ArrayIterator {
protected $index;
public function __construct($array, $index) {
parent::__construct($array);
$this->index = $index;
}
public function current() {
$c = parent::current();
return isset($c[$this->index]) ? $c[$this->index] : null;
}
}
$a = array(
array('page' => 'page1', 'name' => 'pagename1'),
array('name' => '---'),
array('page' => 'page2', 'name' => 'pagename2'),
array('page' => 'page3', 'name' => 'pagename3')
);
$f = new Foo($a, 'page');
foreach($f as $e) {
echo $e, "\n";
}
印刷
page1
page2
page3