0

我的 PHP 中有一个数组,我迭代了两次,每次都做不同的事情。该数组称为$data
我有 2 个这样的 foreach 循环:

foreach($data as $item){
//doing stuff
}
foreach($data as $item){
//doing different stuff
}

我不能将 2 组合起来,因为这是应用程序的样子,但我想在第一次迭代中将数据移动到 $data 数组中,该数组将出现在第二次迭代中。我能想到的唯一方法是在下面。例如

foreach($data as $item){
$data[]['new key']='my new data';
}
foreach($data as $item){
var_dump($item['new key']);//print 'my new data'
}

有一个更好的方法吗?

4

1 回答 1

0

听起来您想通过数组 BY REFERENCE
这意味着您不是将数组视为典型的数组(副本),而是将其视为指向$data数组的指针。
它类似于您使用对象的方式(它不是副本而是实例本身)。

您可以通过以下方式实现:

foreach($data as &$item){
    $item['new var'] ='my new data';
}

foreach($data as $item){
    var_dump($item['new key']);//print 'my new data'
}

希望有帮助

于 2013-02-05T13:42:29.637 回答