2011-09-30 14 views
0

だが、私は私のデータベースに次の表があるとしましょう:私は何をしたいか本当にシンプルなPHP配列のキーと値の問題

Name  | Description  | Image 

App   | Some description | somefile.png 
Another App | Another descript | anotherfile.png 

は、このようなJSON配列を作成することです:

{ 
    "App": { 
     "name": "App", 
     "description": "Some description", 
     "Image": "somefile.png" 
    }, 
    "Another App": { 
     "name": "Another App", 
     "description": "Another descript", 
     "Image": "anotherfile.png" 
    } 
} 

何私は苦労してキー>値のペアを押している。キーではない配列で値をプッシュすることはできますが、キー>値のペアを配列にプッシュすることはできません。私が試した何

$res = mysql_query('SELECT * FROM `apps`;'); 
if ($res) { 
    $temp = array(); 
    while ($row = mysql_fetch_array($res)) { 
     $name = $row['name']; 
     $descript = $row['description']; 
     $img = $row['image']; 
     $new = array('name'=>$name,'description'=>$descript,'img'=>$img); 
     array_push($temp,$new); // how do I make this push with a key? 
    } 
} 
echo json_encode($temp); 

私の問題は、array_push()関数である - 私はそれがキーとして名前をプッシュしたいが、私はそれが得ることができません。

+1

'array_push()'スタックではなく、それはあなたが望むものではありません意味連想配列を作成します。キー付きの値を使用し、キー付き/連想配列に設定するだけです。 –

+0

これは既にここで答えられましたhttp://stackoverflow.com/questions/2121548/how-to-push-both-value-and-key-into-array-with-php – Mark

+0

@Mark申し訳ありません - 私は見ましたが、その投稿を見つけること –

答えて

2

はこれを試してみてください:

while ($row = mysql_fetch_array($res)) { 
    $name  = $row['name']; 
    $descript = $row['description']; 
    $img  = $row['image']; 

    $temp[$name] = array('name'=>$name,'description'=>$descript,'img'=>$img); 
} 
+0

大変ありがとう - 私はそれを考えなかったとは信じられない! –