Javascript json对象索引从1开始
我有一个PHP文件,其中我的Javascript json对象索引从1开始,javascript,angularjs,Javascript,Angularjs,我有一个PHP文件,其中我的数组索引从1开始,如下面的代码片段所示 在我的AngularJS应用程序中,我使用$http.post获取JSON数据,奇怪的是我的JavaScript JSON对象从0开始,而我的PHP数组从1开始 是因为当我进行JSON编码时,索引丢失了吗 在下面的屏幕截图中,我的JSON对象索引从0开始,这偏离了我文章的顺序。在AngularJS中有没有办法将JSON对象的索引设置为1 原因是我使用了一个日期过滤器来匹配帖子id和计算机日期(dayNumber变量),例如:今天
数组
索引从1开始,如下面的代码片段所示
在我的AngularJS应用程序中,我使用$http.post
获取JSON数据,奇怪的是我的JavaScript JSON对象从0开始,而我的PHP数组从1开始
是因为当我进行JSON编码时,索引丢失了吗
在下面的屏幕截图中,我的JSON对象索引从0开始,这偏离了我文章的顺序。在AngularJS中有没有办法将JSON对象的索引设置为1
原因是我使用了一个日期过滤器来匹配帖子id和计算机日期(dayNumber
变量),例如:今天是第14天,但我得到的帖子是第15天。我可以做dayNumber-1,这样我可以调整dayNumber,但我想尝试学习一些新的东西。有人吗
PHP文件代码片段:
$arr=array();
如果($result->num_rows>0){
而($row=$result->fetch_assoc()){
$arr[]=$row;
}
}
//将obj排序为从ASC开始
排序($arr);
$iOne=数组_组合(范围(1,计数($arr)),数组_值($arr));
#JSON对响应进行编码
$iOne=数组_值($iOne);
$json_response1=json_编码($iOne);
//$json_response=json_encode($arr);
//#返回响应
echo$json_response1;
**AngularJS代码段:**
app.controller('TimeController',函数($scope,$filter,$http){
$http.post('ajax/getQuotes.php').success(函数(数据){
控制台日志(数据);
$scope.quote=数据;
});
$scope.dayNumber=$filter('date')(新日期(),'d');
console.log($scope.dayNumber);
输出(在控制台中):
从索引1开始数组不是一个好的做法。这会造成内存浪费。我建议您更改
dayNumber
到
否则,您的代码将因其流而变得复杂
$iOne = array_values($iOne);
正在“重置”索引
试着不用这条线,或者你需要这条线的原因是什么
编辑
如果您需要数字索引,最简单的方法是在位置0处添加一个伪值(在php中)。这样您就可以跳过$iOne内容:
array_unshift($arr, null);
$json_response1 = json_encode($arr);
谢谢你的回答。我之所以使用这个函数,是因为我的json是一个字符串,这意味着它以:{“1”:{“id”:“1”,“quote”开始数组:所以当我使用这个函数时,它会将我的字符串转换成json对象,如:[{“id”:“1”,“quote”:…在JavaScript中,恐怕不能有不以0开头的数字索引。因此,请尝试我的编辑中的代码。。。
array_unshift($arr, null);
$json_response1 = json_encode($arr);