所以,我有這樣的:添加新的索引到一個數組內的foreach
$abc = array('a','b','c');
foreach ($abc as $k => &$a) {
echo $a;
if ($k == 1)
$abc[] = 'd';
}
工作的預期,通過在foreach迭代4次,給我:
abcd
但是現在,當我有此:
$myvar = $this->someModel->return_an_array_as_result(); // returns array([0] => array('a' => 'b'))
foreach ($myvar as $myvar_key => &$mv){
$myvar[] = array('e' => 'f');
var_dump($myvar);
if ($myvar_key == 5) die;
}
該foreach只運行一次。
重置內部指針時foreach如何工作的任何想法?
是的,它會運行一次......你'$ myvar'返回'array([0] => array('a'=>'b'))' – Baba
是的,但仔細看看第二個代碼:'$ myvar []' – dmmd
查看更新的答案...它應該使用'ArrayObject' Insted – Baba