0

私のデータ

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" 
...
4

2 に答える 2

4

It's pretty simple, just use nested foreach loop

$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;
    }
}

Output:

1 : aaa
2 : bbb
2 : ccc
3 : ddd
4 : eee
4 : fff
4 : ggg
于 2012-05-15T10:04:35.510 に答える
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++;           
    }   
}
于 2012-05-15T10:29:33.580 に答える