0

次のように MySQL テーブルからデータを読み取っています。

while($row=mysql_fetch_assoc($result))
{
   $tmp[]=$row;
}

行全体をtmp配列内の単一の項目として読み取りますが、単一の列のすべての値を別の配列にまとめる必要があります。たとえば、テーブルが次の場合:

     -------------------
      Honda  Suzuki  BMW
     -------------------
      Accord  Alto   abc
      Acty    Baleno xyz

私はこれを得る:

     [{"Honda":"Accord","Suzuki":"Alto","BMW":"abc"},
      {"Honda":"Acty","Suzuki":"Baleno","BMW":xyz"}]

しかし、私はこれが欲しい:

     [ Honda:{Accord,Acty},
       Suzuki:{Alto,Baleno},
       BMW:{abc,xyz}
     ]

このようなデータをどのように構造化すればよいか誰か教えてもらえますか?

4

1 に答える 1

2

私はあなたが意味すると思います

{ "Honda":["Accord","Acty"],
  "Suzuki":["Alto","Baleno"],
  "BMW":["abc","xyz"]
}

あなたが得るだろう

$tmp=array();
while($row=mysql_fetch_assoc($result))
  foreach($row as $name=>$value)
    //Next 2 lines updated after input from comment
    if (!$value) continue;
    else if (!isset($tmp[$name])) $tmp[$name]=array($value);
    else $tmp[$name][]=$value;
$tmp=json_encode($tmp);
于 2012-08-31T11:46:36.957 に答える