2011-08-17 117 views
1

iam试图构建一个多维数组。PHP多维数组问题

public function saveRateTemplateData($RateTemplateInfo) 
{ 
    $RateTemplateID = $RateTemplateInfo['id']; 
    $Zones = $RateTemplateInfo['premium_zones']; 
    //$ZoneZipCodeIDs[] = array(); 
    for ($n = 1; $n <= $RateTemplateInfo['premium_zones']; $n++) { 
     $ZoneNum = 'zone' . $n; 
     $ZipCodeArray = explode(",",$_POST[$ZoneNum]); 
     $ZipCodeIDs=array(); 
     foreach ($ZipCodeArray as $v) { 
      $v = intval(trim($v)); 
      if (strlen($v) == 5) { 
       array_push($ZipCodeIDs, $this->addZipCode($v)); 
      } else { 
       echo "it isnt 5"; 
      } 
     } 
    } 
} 

所以iam试图做的是制作一个数组的数组。所以这是它应该如何看待

Array 
(
    [1] => Array 
    (
     [0] => 34 
     [1] => 31 
     [2] => 23 
    ) 

    [2] => Array 
    (
     [0] => 18 
     [1] => 4 
     [2] => 35 
     [3] => 1 
    ) 
) 

我已经试过许多方法它不通过它的工作 基本上我希望它以这种格式为VarName [ZoneNumbers] [ZipCodeID]

,所以我可以循环以后。这样我就可以打印这样的$ varname的[$ N]那么所有zipcodeID的阵列将在此情况下,打印的区1号将打印34,31,23

+0

在'addZipCode什么是()'方法? – Phil

+0

@试图规范我的数据。所有它检查邮政编码是否在另一个表中。如果是,则返回邮政编码。如果没有,则将其添加到另一个表中,然后返回该ID。 –

回答

1
public function saveRateTemplateData($RateTemplateInfo) 
{ 
    $RateTemplateID = $RateTemplateInfo['id']; 
    $zones = array(); // you weren't using this so I'll use it to hold the data 

    for ($n = 1; $n <= $RateTemplateInfo['premium_zones']; $n++) { 
     $ZoneNum = 'zone' . $n; 

     // create an array under the zone number for holding the IDs 
     $zones[$n] = array(); 

     $ZipCodeArray = explode(",",$_POST[$ZoneNum]); 
     foreach ($ZipCodeArray as $v) { 
      $v = (int) trim($v); 
      if (strlen($v) == 5) { 
       $zones[$n][] = $this->addZipCode($v); 
      } else { 
       // use exceptions for exceptional circumstances 
       throw new RuntimeException(sprintf('Invalid zone ID "%s"', $v)); 
      } 
     } 
    } 

    return $zones; 
} 
+0

再次感谢您的帮助....... –