2012-05-15 38 views
0

我的數據如何保持數組中的n值?

1 : "aaa" 
2 : "bbb" 
2 : "ccc" 
3 : "ddd" 
4 : "eee" 
4 : "fff" 
4 : "ggg" 

我怎麼能保持PHP數組這些價值? 有沒有for循環實現的例子?

[編輯] 如何通過for-loop php從我的數據製作這個數組?

$array = array(
    1 => array("aaa"), 
    2 => array("bbb", "ccc"), 
    3 => array("ddd"), 
    4 => array("eee", "fff", "ggg") 
); 

[編輯#2] 我真正的代碼:

$list = "SELECT.....";  
$root = retrieve($list); 
// $root is a array of the data from PostgreSQL; 
foreach($root as $i => $v){ 
    if(cond) { 
     $q = "SELECT ...(use variables from $root)"; 
     $a = retrieve($q); 
     for($a as $j => $w) { 
      echo $index." ".$v["aid"]." ".$w['new_geom']."<br />"; 
     } 
     //what this line printed, i simplified to the sample data above 
     $index++;   
    } 
} 

[編輯#3] 這是它打印

... 
23 33 "aaa" 
24 34 "bbb" 
25 34 "ccc" 
26 35 "ddd" 
... 
+0

我剛剛更新的問題。請再讀一遍。對不起模糊的問題。 –

+0

你的數據是什麼格式?它是一個字符串(由換行符分隔)還是其他東西? – PeeHaa

+0

@Korr只是看看我的答案,我認爲這就是你想要的 –

回答

1

我猜這就是你想要的。我還猜測,$v['aid']包含要在新數組的索引和$w['new_geom']包含的值,例如:aaabbb

$list = "SELECT.....";  
$root = retrieve($list); 

$theNewArray = array(); 
foreach($root as $i => $v){ 
    if(cond) { 
     $q = "SELECT ...(use variables from $root)"; 
     $a = retrieve($q); 
     for($a as $j => $w) { 
      if (!array_key_exists($v["aid"], $theNewArray)) { 
       $theNewArray[$v["aid"]] = array(); 
      } 

      $theNewArray[$v["aid"]][] = $w['new_geom']; 

      echo $index." ".$v["aid"]." ".$w['new_geom']."<br />"; 
     } 
     //what this line printed, i simplified to the sample data above 
     $index++;   
    } 
} 
+0

array_key_exists –

4

這很簡單,只需使用嵌套的foreach迴路

$array = array(
    1 => array("aaa"), 
    2 => array("bbb", "ccc"), 
    3 => array("ddd"), 
    4 => array("eee", "fff", "ggg") 
); 

foreach($array as $num => $array2) { 
    foreach($array2 as $str) { 
     echo "\n".$num." : ".$str; 
    } 
} 

輸出:

1 : aaa 
2 : bbb 
2 : ccc 
3 : ddd 
4 : eee 
4 : fff 
4 : ggg