簡體   English   中英

PHP數組:關於多維數組的簡單問題

[英]PHP array : simple question about multidimensional array

我有一個返回多行的SQL查詢,我有:

$data = array(
    "nom" => $row['nom'] ,
    "prix"   => $row['rapport'],
    "average"   => "$moyenne_ge"
  );

這是完美的,但只有當我的查詢返回一行時。

我試過了:

$data = array();
$data[$row['nom']]["nom"] = $row['nom'] ;
...
$data[$row['nom']]['average']  = "$moyenne_ge";

為了有 :

$data[brand1][nom] = brand1
$data[brand1][average] = 150$
$data[brand2][nom] = brand2
$data[brand2][average] = 20$
...

但當我這樣做: json_encode($data)

我只有最新的JSON對象而不是我請求中的所有JSON對象,好像我的數組只有一個品牌而不是10個。

我想我在某個地方做了些蠢事。 謝謝你的幫助

我猜你的線路:

$data = array();

在循環的每次迭代中初始化數組。 您不會累積多行數據。

我猜這樣的事情對你有用:

$resource = mysql_query("YOUR QUERY");
$results = array()

while($result = mysql_fetch_assoc($resource)) {
    $results[$result['brand']] = array(
        'nom' => $result['nom'],
        'prix' => $result['rapport'],
        'average' => $moyenne_ge
    );
)

$results現在包含由brand索引的查詢中的所有行。 如果這不是你想要的,請在評論中提問。

如果我正確地讀你,你應該做這樣的事情:

$data[] = array(
    "nom" => $row['nom'] ,
    "prix"   => $row['rapport'],
    "average"   => "$moyenne_ge"
);

(注意[]

這應該將每個數組附加到$ data而不是覆蓋內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM