PHP 惰性数组映射

标签 php spl

有没有办法将 array_map 做为迭代器?

例如:

foreach (new MapIterator($array, $function) as $value)
{
   if ($value == $required)
      break;
}

这样做的原因是$function很难计算,$array的元素太多,只需要映射到找到具体的值即可。 array_map 将计算所有值,然后我才能搜索到我想要的值。

我可以自己实现迭代器,但我想知道是否有执行此操作的 native 方法。我找不到任何搜索 PHP 文档的内容。

最佳答案

简而言之:没有。

PHP 中没有内置惰性迭代器映射。有一个非惰性函数 iterator_apply(),但与您所追求的完全不同。

你可以像你说的那样自己写一个。我建议您扩展 IteratorIterator 并简单地覆盖 current() 方法。

如果有这样的事情,它要么被记录下来 herehere .

关于PHP 惰性数组映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566129/

相关文章:

php - Slim PHP 和 GET 参数

php - 在 MySQL 数据库中存储关联数组

php - 在 PHP 中迭代数组时向前看

php - session_start() php 中的 UnexpectedValueException 导致 SPLObjectStorage 序列化失败

php - SPL 与数组 : When should we use SPL and when should we use Array in PHP?

PHP 自动加载器类与程序自动加载器函数?

PHP - 将 <head></head> 数据作为包含加载是否愚蠢

PHP数据库未添加数据

PHP 自动加载子文件夹

php - 在 Javascript、PHP 中验证图像分辨率