php for循环与数组

时间:2012-05-18 14:57:29

标签: php arrays for-loop

第1部分:我需要为一组数组变量

创建一个循环
for ($cnt=1; $cnt<=$qty; $cnt++) {
      $firstvar.$cnt['Code'] = '02';
      $secondvar.$cnt['Type'] = $somevar;
      $thirdvar.$cnt['Code'] = 'IN';
   }

//结果为

      $firstvar1['Code'] = '02';
      $secondvar1['Type'] = $somevar;
      $thirdvar1['Code'] = 'IN';

      $firstvar2['Code'] = '02';
      $secondvar2['Type'] = $somevar;
      $thirdvar2['Code'] = 'IN';  

//etc.

然而,解析$ cnt变量似乎与数组冲突。

第2部分:然后我需要创建一个像这样的变量数组:

  $lastvar['Thing'] = array( $thirdvar1, $thirdvar2, ... $thirdvar.$qty );

在这里,使用for循环创建一个简单的字符串并将其放入数组中不起作用。

谢谢!

3 个答案:

答案 0 :(得分:0)

为什么不直接做所有事情?

foreach ($cnt as $c) {
    $firstvar[$c['Code']] = 02;
    $secondvar[$c['Type']] = $somevar;
    $lastvar['Thing'][] = 'IN';
}

答案 1 :(得分:0)

第1部分:$firstvar.$cnt['Code']应为${"firstvar$cnt"}['Code'](或${'firstvar'.$cnt}['Code'])。

第2部分:

for ($cnt=1; $cnt<=$qty; $cnt++) {
    $lastvar['Thing'][] = ${'thirdvar'.$qty};
}

第3部分:(我的!)
把所有东西放在同一个循环中:

for ($cnt=1; $cnt<=$qty; $cnt++) {
  ${'firstvar'.$cnt}['Code']  = 02;
  ${'secondvar'.$cnt}['Type'] = $somevar;
  ${'thirdvar'.$cnt}['Code']  = 'IN';
  $lastvar['Thing'][]         = ${thirdvar$qty};

}

请记住,如果使用数组而不是变量名称连接,则此代码会更清晰。

答案 2 :(得分:0)

<?php
$somevar = "testValue";
$qty = 5;
$lastvar['Thing'] = array();
for($cnt=1; $cnt<=$qty; $cnt++) 
{
    ${"firstvar$cnt"} = array('Code' => '02', 'Type' => $someVar, "Code" => "IN");
    $lastvar['Thing'][] = ${"firstvar$cnt"};
}

var_dump($lastvar);

应该有用。