Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript json对象索引从1开始_Javascript_Angularjs - Fatal编程技术网

Javascript json对象索引从1开始

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变量),例如:今天

我有一个PHP文件,其中我的
数组
索引从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);