0

while ループから配列を生成していますが、最終的にはこの配列を使用してデータを表示したいと考えています。

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

     $value_1 = $row['value_1'];
     $value_2 = $row['value_2'];

     $data[] = array("value_1"=>$value_1,"value_2"=>$value_2);

}

$data[] は、次のprint_rようなものを使用して表示されます。

Array
(
    [0] => Array
        (
            [value_1] => Hello World
            [value_2] => venus
        )

    [1] => Array
        (
            [value_1] => Hello World
            [value_2] => pluto
        )

    [2] => Array
        (
            [value_1] => Hello Moon
            [value_2] => Halloween
        )

)

私の質問は、foreach ループを実行したり、すべてのデータを取得したいが同じ値を統合したい場合にそのような方法を表示するにはどうすればよいかということです。

Ex:

Hello World to venus pluto
Hello Moon to Halloween

これらの文が意味をなさないことはわかっていますが、ご覧のとおり、Hello World は統合され、 と の間に「to」を追加する必要がありますvalue_1value_2

私の質問が理解できることを願っています。

ありがとう!

4

3 に答える 3

2

このようなことを試してください。(未検証)

$match = array();
foreach($data as $d) {
    if (isset($match[$d['value_1']])) {
        $match[$d['value_1']] = $match[$d['value_1']].' '.$d['value_2'] ;
    } else {
        $match[$d['value_1']] = $d['value_1']. ' to '. $d['value_2'];
    }
}

print_r($match);
于 2012-11-01T07:02:17.167 に答える
0

これについては、最初に次のように新しい配列を作成する必要があると思います:

$new_array = array();
//consider your original array is $data
foreach($data as $row){
    if (array_key_exists($row['value_1'], $new_array)) {
       $new_array[$row['value_1']] = $new_array[$row['value_1']]. " ". 
                                     $row['value_2'];
    }
    else {
        $new_array[$row['value_1']] = $row['value_2'];
    }
}

次に、繰り返して表示します。

foreach($new_array as $key => $value){
   echo $key ."to". $value;
}
于 2012-11-01T07:19:39.323 に答える
-1
foreach($data as $d) {

    echo $d['value_1'], ' to ', $d['value_2']; // this is if you want to echo the content

    // this code is to insert 'to' in the middle of value_1 and value_2
    $value_2 = $d['value_2'];

    unset($d['value_2']);

    array_push($d, "to", $value_2);

    unset($value_2);

}

また、 $row 値を別の値に割り当てる必要はありません。

$value_1 = $row['value_1']; // remove this
$value_2 = $row['value_2']; // remove this

$data[] = array("value_1" => $row['value_1'], "value_2" => $row['value_2']);
于 2012-11-01T06:54:28.350 に答える