0

モーター名とモーターの説明を記載した表があります。同じ名前で説明が異なるモーターがいくつかあります。

Example:

motor_table


NAME       DESCRIPTION
Evinrude   90HP ETEC
Evinrude   150HP ETEC
Mercury    90HP 4/S
Mercury    150HP 4/S

テーブルをループして、異なる名前ごとに配列を作成したいのですが、名前を繰り返したくありません。したがって、モーター名の配列は次のようになります。

$motor_names = array('Evinrude','Mercury');

次に、配列を使用して、このようにテーブルにデータを表示したいと思います。

EVINRUDE
90HP ETEC
150HP ETEC

MERCURY
90HP 4/S
150HP 4/S

私はこれで約1時間過ごしましたが、運がありません。

4

4 に答える 4

0

これは少し複雑ですが、SQL クエリで実行できます。

select name
from ((select name, name as sort1, 0 as sort2
       from motor_table
      ) union all
      (select description, name as sort1, 1 as sort2
       from motor_table
      )
     ) t
order by sort1, sort2;

これには実際には空白行がありません。次のようにして取得できます。

select name
from ((select name, name as sort1, 0 as sort2
       from motor_table
      ) union all
      (select description, name as sort1, 1 as sort2
       from motor_table
      ) union all
      (select '', name as sort1, 2 as sort2
       from motor_table
      )
     ) t
order by sort1, sort2;
于 2013-07-05T13:58:49.020 に答える
0
<?php
$array= array(
array('name' => 'Evinrude', 'description' =>   "90HP ETEC"),
array('name' => 'Mercury', 'description' =>   "90HP 4/S"),
array('name' => 'Mercury', 'description' =>   "150HP 4/S")
);

$motor_names = array('Evinrude','Mercury');
$data = array();
foreach($array as $row)
{
  $data[$row['name']][] = $row['description'];
}


print_r($data);

?>

このコードを使用してください

出力:

Array ( 
         [Evinrude] => Array ( [0] => 90HP ETEC )
         [Mercury] => Array ( [0] => 90HP 4/S [1] => 150HP 4/S ) 
      )
于 2013-07-05T13:59:39.260 に答える