PHP数组中的自定义排序-类似mysql,按字段排序(顺序为4、1、5、2、3)

PHP数组中的自定义排序-类似mysql,按字段排序(顺序为4、1、5、2、3),php,mysql,arrays,sorting,Php,Mysql,Arrays,Sorting,我有一个动态数组,例如包含以下元素: $myArray = array(1, 2, 3, 4, 5); 我希望我的最终数组是: $finalArray = array(4, 1, 5, [whaterever]); 进行自定义排序的最佳方法是什么,既不升序也不降序,也不遵循任何类似规则? 谢谢你的建议 [编辑] 我已编辑了我的问题。您可以尝试该功能。对于第二个参数,您应该编写一个函数来决定数组元素的放置方式 大概是这样的: <?php $myArray = [1, 2, 3, 4, 5

我有一个动态数组,例如包含以下元素:

$myArray = array(1, 2, 3, 4, 5);
我希望我的最终数组是:

$finalArray = array(4, 1, 5, [whaterever]);
进行自定义排序的最佳方法是什么,既不升序也不降序,也不遵循任何类似规则?
谢谢你的建议

[编辑] 我已编辑了我的问题。

您可以尝试该功能。对于第二个参数,您应该编写一个函数来决定数组元素的放置方式

大概是这样的:

<?php
$myArray = [1, 2, 3, 4, 5];

$properOrder = [4, 1, 5, 2, 3];
usort($myArray, function($a, $b) use($properOrder) {
    $index1 = array_search($a, $properOrder);
    $index2 = array_search($b, $properOrder);

    if ($index1 > $index2) {
        return 1;
    } else if ($index1 < $index2) {
        return -1;
    } else {
        return 0;
    }
});

print_r($myArray);
您可以尝试该功能。对于第二个参数,您应该编写一个函数来决定数组元素的放置方式

大概是这样的:

<?php
$myArray = [1, 2, 3, 4, 5];

$properOrder = [4, 1, 5, 2, 3];
usort($myArray, function($a, $b) use($properOrder) {
    $index1 = array_search($a, $properOrder);
    $index2 = array_search($b, $properOrder);

    if ($index1 > $index2) {
        return 1;
    } else if ($index1 < $index2) {
        return -1;
    } else {
        return 0;
    }
});

print_r($myArray);

你能再解释一下吗?当你有一个带有特定值的数组,并且你想让这些值像4一样重新排序,最后是3(如上例所述)。因此,可能是一个额外的函数,其中您提到了值的排序过帐,并将返回该数组的排序版本?您能解释更多吗?当您有一个具有特定值的数组,并且您希望将值重新排序,如前4个,最后3个(如上面示例中所述)。因此,可能是一个额外的函数,其中您提到了值的排序发布,并将返回该数组的排序版本?它现在不起作用。我想要最后的数组有<代码>数组(4, 1, 5,[任何])/代码> @ MaqPysCho第一。你的问题现在不同于原来的,所以考虑一个新的问题。第二,您应该尝试编辑答案上的自定义函数,以便在索引不是4、1或5时返回-1。我们在这里帮助你们,并为你们指出正确的方向。不要做你的家庭作业或你的工作。给你,现在不行了。我想要最后的数组有<代码>数组(4, 1, 5,[任何])/代码> @ MaqPysCho第一。你的问题现在不同于原来的,所以考虑一个新的问题。第二,您应该尝试编辑答案上的自定义函数,以便在索引不是4、1或5时返回-1。我们在这里帮助你们,并为你们指出正确的方向。不要做你的家庭作业或工作。给你-