2015-08-16 23 views
0

爲下面的代碼的結果是:如何以我想要的方式形成php數組?

(0)20
(1)100
(0)22
(1)300

我想要的是,要能通過索引尋址每個值,例如: 爲了在上面的列表中調用值20和22 .. $ array [0],同時訪問100和300 $ array [1]。

但是,當我以這種方式訪問​​時,它只顯示每個值的第一位數字。

當我訪問$ array [0]時的示例;結果是:
(0)2
(1)1
(0)2
(1)3

我的代碼:

$size = sizeof($this->sub_rate); 

     for($i=0;$i<$size;$i++) 
     { 
      foreach($this->sub_rate as $key=>$value) 
      { 

       foreach($value[$i] as $k=>$v) 
       { 

        echo "<br/>(".$key.") "; 
         echo $v; 




       } 

      } 
     } 
+0

你可以顯示'var_dump($ this-> sub_rate)' – CodeGodie

+0

@CodeGodie的結果,它顯示在上面的帖子 – 112233

+4

數組鍵必須是唯一的,所以你將無法訪問2個值,通過調用1鍵。這可能是你遇到問題的原因。 – MaggsWeb

回答

0

這聽起來像你正在構建的方式你的數組不正確。如果你可以更好地構造它們,那麼對於你來說它會非常有效,因爲你希望它們配對。但是,如果你不能,那麼就用你已有的東西來工作。迭代你當前的數組來得到一個匹配索引的數組。就像這樣:

$arrs= array(
    array(
     array(20), 
     array(22), 
     array(null) 
    ), 
    array(
     array(100), 
     array(300), 
     array(null) 
    ) 
); 

$final = []; 
foreach($arrs as $arr){ 
    foreach($arr as $k => $vals){ 
     if(!isset($final[$k])){ 
      $final[$k] = [];  
     } 
     $final[$k][] = $vals[0]; 
    } 
} 
var_dump($final); 

結果:

Array 
(
    [0] => Array 
     (
      [0] => 20 
      [1] => 100 
     ) 

    [1] => Array 
     (
      [0] => 22 
      [1] => 300 
     ) 

    [2] => Array 
     (
      [0] => 
      [1] => 
     ) 

) 

現在,您可以訪問迭代您$final或者乾脆直接訪問像$final[0][1]

希望這有助於所需的值。

相關問題