为什么usort在函数内部不起作用?

Joh*_*ith 0 php usort

这是代码 - http://sandbox.onlinephpfunctions.com/code/ac3b31af0ce4d348f91957b314a8fa089cc8e779 仅当95字符串取消注释时才有效.

我花了半天时间从这里制作代码 - /sf/answers/1763497921/ - 工作.但由于某些原因,usort在函数内部不起作用.为什么?..

代码的相关部分:

function fs($array){

    usort($array, 'sortByOrder');

};

function sortByOrder($a, $b) {
    return $a['order_inside_level'] - $b['order_inside_level'];
};

fs($array);
// usort($array, 'sortByOrder'); // If to uncomment this string then array is ordered by 'order_inside_level'

var_dump($array);
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 5

如果将数组传递给函数,则会创建并传递该数组的副本.数组分配给另一个变量时也会发生同样的情况.

即,您正在对副本进行排序,而不是原始数组.

您可以定义应该通过引用传递数组:

function fs(&$array){

}
Run Code Online (Sandbox Code Playgroud)