2017-10-18 5 views
-1

これまでに尋ねられた可能性がある場合、またはこれが可能でない場合はお詫び申し上げますが、ここで私はMySQLを使用して特定のテーブル。MySQL/PHP:キー=>値のペアとして連想配列として2つの列を返します

言って、私は、次の表を持っている:

+-------------+------------------+ 
| property | value   | 
+-------------+------------------+ 
| style  | unisex   | 
| color  | blue    | 
| type  | small   | 
+-------------+------------------+ 

IはMySQLから連想配列として二つの列propertyvalueを取得できるようにしたいので、最終結果は次のようになります

を私はすでに、私はDできる方法を知っている:人々は私が求めているものを誤解しないようにだけコンテキストを提供する

array(
    'style' => 'unisex', 
    'color' => 'blue', 
    'type' => 'small', 
); 

oこれは、PHPを使用して、SQL文の結果が返され、各行の列がkey => valueのペアとして返されます。私はちょうどそれがMySQLからPHPに続行するために直接1列の値をキーとして返し、2行目の値を各行のキーの値として返すことができるかどうか疑問に思っていました。

+0

は、あなたは確かにそのように設定し、結果を翻訳するコードを書くことができます – Tarun

+0

mysqli_fetch_arrayに見ていただけます。 – Sammitch

+0

私はMySQLのクエリの結果を得たら、これを達成するために 'PHP'でコードを書く方法を知っています。私はそれがSQLから直接行うことが可能かどうか疑問に思っていました。 –

答えて

2

このような配列のインデックスを与えるボックス取り出しモードはありません(キーがどのように分かっていますか?2つ以上の列がある場合はどうなりますか?)。

あなたはキーと値として第2として、最初の列を使用して、新しいアレイを構築するためにPDO::FETCH_NUMarray_map()を使用することができます。

<?php 
$query = $db->prepare("SELECT property, value FROM table"); 
$query->execute(); 
$row = $query->fetchAll(PDO::FETCH_NUM); 
$rowFormatted = array_map(function ($el) { 
    return [$el[0] => $el[1]]; 
}, $row); 
var_dump($rowFormatted); 

追記:あなたはENTITY-に向かっているように見えます属性値の反パターン。このになりますので、スキルを再設計することを検討してください。より多くを学ぶために、このリソースを見てみましょう:

関連する問題