2017-04-17 194 views
1

我使用ajax設置了一個Jquery自動建議,並且我對數據庫有一個簡單的查詢,返回5條建議。該領域是公司和ID,所以我得到將PHP添加到多維數組中

$result['id'] 
$result['company'] 

爲返回數據庫suggestiions

能正常工作的每一行,目前我遍歷結果

foreach ($result as $item) { 
$suggest[] = $item['company']; 

}

echo json_encode($suggest); 

我想要添加這些以便公司是標籤和ID是一個值,類似於

"value": "A Company", "data": "20" 

這樣我就可以編碼並在我的autosuggest中使用。

在此先感謝!

+1

我不確定我是否完全遵循你的問題,但是你的意思是你想要做'$ suggest [$ item ['id']] = $ item ['company'];'得到'id:company'在你的json中配對? –

+0

@DaveGoten我明白對面$建議[$ item ['company]] = $ item ['id'];回聲json_encode($建議); –

+0

'$ suggest [] = array('value'=> $ item ['company'], 'data'=> $ item ['id']);' – AbraCadaver

回答

2

你要保存的陣列主陣列這樣

foreach ($result as $item) { 
    $suggest[] = [ 
     'value' => $item['company'], 
     'data' => $item['id'], 
    ] 
} 

echo json_encode($suggest); 

它應該返回類似這樣

[ 
    { 
     'value': 'Some value', 
     'data' : item id 
    } 
] 
+0

''data'=> $ item ['id'],' – AbraCadaver

+0

@AbraCadaver Ouch,修正,謝謝。 – LiTe

0

我會建議你創建一個數組,下一步就要創建2個數組作爲值和數據鍵的值。 是這樣的。

$arr=array(); 
$arr['value']=array(); 
$arr['data']=array(); 

while($suggest=mysql_fetch_assoc($result)){ 
    array_push($arr['value'],$suggest['id']); 
    array_push($arr['data'],$suggest['company']); 
} 

echo "<pre>"; 
print_r($arr); 

請注意,這個解決方案,如果你刪除任何值或數據的標題 準備刪除其他數組中的對應條目。其他人可能能夠改善這一點,甚至提供更好的方法。