- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我很难理解 PHP 的 iterator_to_array
函数。
我尝试阅读手册,但没有帮助。
这是什么?我该如何使用它?什么是合适的用例?
最佳答案
简而言之,iterator_to_array()
函数采用 Traversable
类型的迭代器。并将其转换为关联/非关联数组,具体取决于提供的参数。来自 the documentation ,
array iterator_to_array ( Traversable $iterator [, bool $use_keys = true ] )
该函数接受以下两个参数,
第一个参数是Traversal
类型,它是一个接口(interface)。两者 IteratorAggregate
和 Iterator
类扩展了这个接口(interface)。您可以在自定义类中实现这两个类,如下所示:
class myIterator implements IteratorAggregate {
private $array = array('key1'=>'value1', 'value2', 'value3', 'value4');
public function getIterator(){
return new ArrayIterator($this->array);
}
}
$obj = new myIterator;
$array = iterator_to_array($obj->getIterator(), true);
var_dump($array);
或者,
class myIterator implements Iterator {
private $key;
private $array = array('key1'=>'value1', 'value2', 'value3', 'value4');
public function __construct(){
$this->key = key($this->array);
}
public function rewind(){
reset($this->array);
$this->key = key($this->array);
}
public function current(){
return $this->array[$this->key];
}
public function key(){
return $this->key;
}
public function next(){
next($this->array);
$this->key = key($this->array);
}
public function valid(){
return isset($this->array[$this->key]);
}
}
$obj = new myIterator;
$array = iterator_to_array($obj, true);
var_dump($array);
最重要的一点这里要注意的是传递给iterator_to_array()
函数的参数1必须实现接口(interface)Traversable
,所以你不能直接将任何其他类型的数组或对象传递给此函数。看下面的例子,
$array = array('key1'=>'value1', 'value2', 'value3', 'value4');
$array = iterator_to_array($array, true); // wrong
第二个参数是一个 bool 值,表示是否使用迭代器元素键作为索引。参见 Example #1 here .
关于php - PHP 中的 iterator_to_array 函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39805396/
DatePeriod是一个用于处理重复日期的 PHP 类。它的方法数量非常有限。所以当我想用重复日期做基本的数组函数时,我必须将它复制到一个数组中 iterator_to_array .奇怪的是,复制
在下面的 PHP 脚本中,iterator_to_array 效率极低(我使用了分析器)。下面的代码有更好的选择吗? $new = []; $rows=(new Mongo())->table1->f
FROM PHP DOC iterator_to_array — Copy the iterator into an array array iterator_to_array ( Traversab
在 PHP 中使用迭代器时,您可以使用 iterator_to_array 函数来提取迭代结果的数组。例如,假设您有以下 ArrayObject: $array_object = new ArrayO
我很难理解 PHP 的 iterator_to_array 函数。 我尝试阅读手册,但没有帮助。 这是什么?我该如何使用它?什么是合适的用例? 最佳答案 简而言之,iterator_to_array(
在 MongoCursor 实例上使用 iterator_to_array() 可以在 PHP 5.3 中抛出异常吗?换句话说,我是否需要在 try-catch 语句中包装对 MongoCursor
mongo 类的 PHP 文档说 using a cursor而不是 iterator_to_array 更好。 为什么?我将从中获得什么好处/灵 active ? 最佳答案 使用 iterator_
我是一名优秀的程序员,十分优秀!