我如何在foreach循环外保存数组值

时间:2010-12-28 17:14:21

标签: php

我循环时有一个foreach循环,我正在创建一个包含所有值的$ data数组

foreach ($this->arr1['somevalue']['object'] as $record ){                
    $data_add = array(
    'CODE' => $record['CODE'],
    'some_key' => $this->arr['somevalue'],
    'lines' => count($this->arr['somevalue']['object'])    
    );
       }
       var_dump($data_add);

现在当我说var_dump($ data_add)时,我只得到“CODE”键的最后一个值。上面的循环重复3次    这意味着我将有3个值。但是我只得到第三个值。第一个值和第二个值都没有显示。    我如何获得这些值。我有一个想法,即创建一个数组(记录['CODE']),但没有成功。

4 个答案:

答案 0 :(得分:3)

变化:

$data_add = array(
    'CODE' => $record['CODE'],
    'some_key' => $this->arr['somevalue'],
    'lines' => count($this->arr['somevalue']['object'])    
    );

为:

$data_add[] = array(
    'CODE' => $record['CODE'],
    'some_key' => $this->arr['somevalue'],
    'lines' => count($this->arr['somevalue']['object'])    
    );

答案 1 :(得分:0)

试试这个:

foreach ($this->arr1['somevalue']['object'] as $record ){                
  $data_add[] = array(
    'CODE' => $record['CODE'],
    'some_key' => $this->arr['somevalue'],
    'lines' => count($this->arr['somevalue']['object'])    
  );
}

答案 2 :(得分:0)

如果您修改代码以使$data_add成为数组:

foreach ($this->arr1['somevalue']['object'] as $record ){                
    $data_add[] = array(
    'CODE' => $record['CODE'],
    'some_key' => $this->arr['somevalue'],
    'lines' => count($this->arr['somevalue']['object'])    
    );
       }
       var_dump($data_add);

这应该可以正常工作。

答案 3 :(得分:0)

你遇到的问题是你每次迭代都要覆盖$ data_add变量,因此你只保留最后一个,以获得你可以使用数组的所有答案(正如其他人所建议的那样)