排序在 laravel http 响应中不起作用

kja*_*mes 5 php sorting laravel-5

当我尝试执行asort($data)然后返回它时response()->json($data, 200),输出仍处于原始位置。

这是代码:

$fruits = array( 'guava', 'apple', 'orange' );
asort( $fruits );
return response()->json( $fruits, 200 );
Run Code Online (Sandbox Code Playgroud)

那么输出仍处于其位置。

{
  0: "guava",
  1: "apple",
  2: "orange"
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在排序发生后转储数据时,就像

$fruits = array( 'guava', 'apple', 'orange' );
asort( $fruits );
dd( $fruits );
Run Code Online (Sandbox Code Playgroud)

我得到了正确的数据位置。

array:3 [
  1 => "apple"
  0 => "guava"
  2 => "orange"
]
Run Code Online (Sandbox Code Playgroud)

知道吗,为什么会发生这种情况?我该如何解决这个问题?我使用Laravel 5.1

Rap*_*nah 0

经过思考,问题在于您的 JSON 响应将按键对数组进行排序。由于您维护与 的索引关联asort(),因此该数组并未真正根据 JSON 进行排序。sort()代替使用。

http://php.net/manual/en/function.sort.php