如何内爆发电机?
How to implode a generator?
我有一个 PHP generator 生成一些 $key => $value
。
是否有 "easy" 方法来 implode
值(通过传递生成器名称)?或者将其转换为数组?
我可以用几行代码来做到这一点,但是有一些内置函数可以做到这一点吗?
您可以使用 iterator_to_array 功能,请看下面的示例:
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
// Note that $i is preserved between yields.
yield $i;
}
}
$generator = gen_one_to_three();
$array = iterator_to_array($generator);
print_r($array);
输出
Array
(
[0] => 1
[1] => 2
[2] => 3
)
必须牢记
A generator is simply a function that returns an iterator.
例如:
function digits() {
for ($i = 0; $i < 10; $i++) {
yield $i;
}
}
digits
是生成器,digits()
是迭代器。
因此应该搜索 "iterator to array" 函数,找到 iterator_to_array (suggested by )
我有一个 PHP generator 生成一些 $key => $value
。
是否有 "easy" 方法来 implode
值(通过传递生成器名称)?或者将其转换为数组?
我可以用几行代码来做到这一点,但是有一些内置函数可以做到这一点吗?
您可以使用 iterator_to_array 功能,请看下面的示例:
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
// Note that $i is preserved between yields.
yield $i;
}
}
$generator = gen_one_to_three();
$array = iterator_to_array($generator);
print_r($array);
输出
Array
(
[0] => 1
[1] => 2
[2] => 3
)
必须牢记
A generator is simply a function that returns an iterator.
例如:
function digits() {
for ($i = 0; $i < 10; $i++) {
yield $i;
}
}
digits
是生成器,digits()
是迭代器。
因此应该搜索 "iterator to array" 函数,找到 iterator_to_array (suggested by