如何将项目添加到一个数组,而通过它的循环? [英] How to add items to an array while looping through it?

查看:97
本文介绍了如何将项目添加到一个数组,而通过它的循环?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在一个的foreach 循环,似乎PHP读取之初整个数组,所以如果你突然需要新的项目追加到数组他们不会得到处理由环路

On a foreach loop, it seems PHP reads the whole array at the beginning, so if you suddenly need to append new items to the array they won't get processed by the loop:

$a = array (1,2,3,4,5,6,7,8,9,10);

foreach ($a as $b)
    {
        echo " $b ";
        if ($b ==5) $a[] = 11;
    }

只打印出: 1 2 3 4 5 6 7 8 9 10

推荐答案

只要创建你的循环数组的参考副本

Just create a reference copy of the array you are looping

$a = array(1,2,3,4,5,6,7,8,9,10);
$t = &$a; //Copy
foreach ( $t as $b ) {
    echo " $b ";
    if ($b == 5)
        $t[] = 11;
}

或刚使用 ArrayIterator

$a = new ArrayIterator(array(1,2,3,4,5,6,7,8,9,10));
foreach ( $a as $b ) {
    echo "$b ";
    if ($b == 5)
        $a->append(11);
}

输出

 1 2 3 4 5 6 7 8 9 10 11

见现场演示

这篇关于如何将项目添加到一个数组,而通过它的循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆