首页 > 解决方案 > 需要一种读取 20k 值的方法,而不是将它们放在包含 20k 项的数组中

问题描述

$numbers = array( 1, 24, 36, [...], 19999, 20000 );
foreach ($numbers as $nid) {

$node = node_load($nid);
$node->field_fieldname[LANGUAGE_NONE][0]['value'] = 'some value';
field_attach_update('node', $node);

}

我已经编写了上面的代码,我想知道是否有更好的方法来循环这个数组中的大约 20k 个数字。是否可以从文件中读取上述数字,其中每个数字都在自己的行中?或者你会建议什么是适当的 - 最好的方法来处理这个?

标签: php

解决方案


使用生成器

function getNumbers($count) {
  for ($i = 1; $i <= $count; $i++) {
    yield $i;
  }
}

foreach (getNumbers(20000) as $number) {
  $node = node_load($number);
  $node->field_fieldname[LANGUAGE_NONE][0]['value'] = 'some value';
  field_attach_update('node', $node);
}


推荐阅读