0

かなり長い間解決しようとしてきた問題があります。私はいくつかの調査を行い、array_merge のようなものを見つけましたが、役に立たないようです。

とにかく、十分なワッフル。次のようなクエリの結果があります。

Array
(
    [0] => STRINGA
)
Array
(
    [0] => STRINGA
    [1] => STRINGB
)
Array
(
    [0] => STRINGA
    [1] => STRINGB
    [2] => STRINGC
)
Array
(
    [0] => STRINGD
    [1] => STRINGC
    [2] => STRINGA
    [3] => STRINGB
    [4] => STRINGE
    [5] => STRINGF
)

上記を 1 つの配列に結合して、結果が次のようになるようにするにはどうすればよいですか。

Array
(
    [0] => STRINGA
    [1] => STRINGB
    [2] => STRINGC
    [3] => STRINGD
    [4] => STRINGE
    [5] => STRINGF
)

文字列を新しい配列に配置する必要があるのは一度だけなので、元の配列の重複は無視できます。

どんな助けでも大歓迎です。

ありがとうございました。

編集: これは、データベースから結果を引き出すコードのブロックです:

while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    foreach($row as $splitrow) {
        if(NULL != $splitrow) {
            $therow = explode(';',$splitrow);
        }   
        //print_r retrieves result shown above
        print_r($therow);                                    
    }
}
4

2 に答える 2

5
$bigarray = array(
  array (
    0 => 'STRINGA',
  ),
  array (
    0 => 'STRINGA',
    1 => 'STRINGB',
  ),
  array(
    0 => 'STRINGA',
    1 => 'STRINGB',
    2 => 'STRINGC',
  )
);


$result = array_values( 
    array_unique( 
        array_merge( $bigarray[0], $bigarray[1], $bigarray[2] ) 
    ) 
);  
// array_merge will put all arrays together, including duplicates
// array_unique removes duplicates
// array_values will sort out the indexes in ascending order (1, 2, 3 etc...)
于 2013-03-06T16:59:32.987 に答える
0
    $bigarray = array();

    while ($row = $result->fetch(PDO::FETCH_ASSOC)) {

            foreach($row as $value){

                if($value != NULL){
                    $therow = explode(';',$value);

                    foreach($therow as $key=>$values){

                        //push the value into the single array 'bigarray'
                        array_push($bigarray, $values); 

                    }
                }                                    
            }           
    }
    //remove duplicates 
    $uniquearray = array_unique($bigarray);
    //reset key values
    $indexedarray = array_values($uniquearray);

    print_r($indexedarray);

助けてくれたすべての人に感謝します。

于 2013-03-07T14:27:22.583 に答える