改变不同循环周围的数组数据


Altering array data around different loops

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

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'
}

有更好的方法吗?

听起来您想通过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'
}

希望对有所帮助