2017-04-17 107 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); 

请注意,这个解决方案,如果你删除任何值或数据的标题 准备删除其他数组中的对应条目。其他人可能能够改善这一点,甚至提供更好的方法。