我有一个PHP函数,可以通过
构建一个JSON数组$jsonArray= array();
for ($i=0; $i<$dirCount; $i++){
$query = sprintf("SELECT * FROM tour WHERE FileName= '../%s/%s'", $imageDirectory, $dirArrays[$i]);
$result = mysqli_query($link, $query);
if (mysqli_num_rows($result) == 1){
$row = mysqli_fetch_row($result);
$jsonArray[]= array('filename'=>$dirArrays[$i], 'location'=>$row[4], 'latitude'=>$row[2], 'longitude'=>$row[3], 'heading'=> $row[5]);
}
}
并在执行时通过ajax查询返回它。
但是,它在Firebug中显示为
[
0 : Object{ 'filename' : , 'location': , 'latitude': , 'longitude: },
1 : Object{ 'filename' : , 'location': , 'latitude': , 'longitude: },
]
等等
如何转换它以使索引位置成为location
值?我的想法是
'start' : Object{ 'filename' : , 'location': , 'latitude': , 'longitude: },
'testLab' : { 'filename' : , 'location': , 'latitude': , 'longitude: }
这背后的原因是我有另一个函数,它在与location字段匹配时创建一个带有数据字段的对象。
function buildData(input){
for (var i=0; i<data.length; i++){
if (data[i].location == input)
//create and return object using data[i] fields
}
}
我想摆脱循环并依赖像
这样的条件function buildData(input){
if (data[input]){
//same object creation and return
}
}
如何做到这一点?
答案 0 :(得分:3)
不要只推送数组的每个元素($jsonArray[] = ...
),而只需分配相关的键($jsonArray[$somekey] = ...
)。