Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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
PHP 5.2通用排序后续所需的函数_Php_Sorting_Multidimensional Array - Fatal编程技术网

PHP 5.2通用排序后续所需的函数

PHP 5.2通用排序后续所需的函数,php,sorting,multidimensional-array,Php,Sorting,Multidimensional Array,好的,上周五你们给了我一个很棒的排序记录集数组的解决方案。() 但是现在当我实现它时,我在记录集数组中得到了一个额外的元素。我不会浪费空间重新发布相同的信息,因为链接在上面。但底线是,当我对5条记录的数组进行排序时,得到的数组有6条记录。数组中的最后一个元素不是记录数组,而是包含整数值1的元素。我假设它以某种方式获得了“strnatcasecmp”函数的输出值,但我不知道它是如何发生的 以下是您上周提供的功能: function getSortCommand($field, $sortfunc)

好的,上周五你们给了我一个很棒的排序记录集数组的解决方案。()

但是现在当我实现它时,我在记录集数组中得到了一个额外的元素。我不会浪费空间重新发布相同的信息,因为链接在上面。但底线是,当我对5条记录的数组进行排序时,得到的数组有6条记录。数组中的最后一个元素不是记录数组,而是包含整数值1的元素。我假设它以某种方式获得了“strnatcasecmp”函数的输出值,但我不知道它是如何发生的

以下是您上周提供的功能:

function getSortCommand($field, $sortfunc) {
    return create_function('$var1, $var2', 'return '.$sortfunc.'($var1["'.$field.'"], $var2["' .$field .'"]);');
}
下面是我调用的对数组进行排序的线路:

$trek[] = usort($trek, getSortCommand('name', 'strnatcasecmp'));
这将生成以下输出,并在末尾附加一个元素

Array
(
[0] => Array
    (
        [name] => Kirk
        [shirt] => Gold
        [assign] => Bridge
    )

[1] => Array
    (
        [name] => McCoy
        [shirt] => Blue
        [assign] => Sick Bay
    )

[2] => Array
    (
        [name] => Scotty
        [shirt] => Red
        [assign] => Engineering
    )

[3] => Array
    (
        [name] => Spock
        [shirt] => Blue
        [assign] => Bridge
    )

[4] => Array
    (
        [name] => Uhura
        [shirt] => Red
        [assign] => Bridge
    )

[5] => 1
)
照办

usort($trek, getSortCommand('name', 'strnatcasecmp'));
返回一个布尔值,指示是否已成功执行(将元素排序到位):

返回值

成功时返回TRUE,失败时返回FALSE


通过执行
$trek[]=usort(…)
,您将函数的结果附加到数组中。

Ahhh,所以您说这是一个典型的PEBKAC问题。(键盘和椅子之间存在问题)谢谢。