假设我有这个数组:
$array = array(
array("id" => 7867867, "animal" => "Dog"),
array("id" => 3452342, "animal" => "Lion"),
array("id" => 1231233, "animal" => "Lion"),
array("id" => 5867867, "animal" => "Dog"),
array("id" => 1111111, "animal" => "Zeebra"),
array("id" => 2222222, "animal" => "Cat"),
array("id" => 3333333, "animal" => "Cat"),
array("id" => 4444444, "animal" => "Zeebra")
);
我尝试使用PHP排序函数按照指定规则对内容进行排序(不是按字母顺序)。
客户要求将信息按“狮子第一,狗第二,斑马第三,猫第四”进行排序。
类似于以下内容:
$array = array(
array("id" => 3452342, "animal" => "Lion"),
array("id" => 1231233, "animal" => "Lion"),
array("id" => 7867867, "animal" => "Dog"),
array("id" => 5867867, "animal" => "Dog"),
array("id" => 4444444, "animal" => "Zeebra"),
array("id" => 1111111, "animal" => "Zeebra"),
array("id" => 2222222, "animal" => "Cat"),
array("id" => 3333333, "animal" => "Cat"),
);
该数组将使用"animal"值进行排序,并基于预定的规则。
我试图弄清楚php排序函数,但我只能让它们按字母或数字排序。
我已经成功使用一块if语句和循环,但我想尽快摆脱这个缓慢的代码。
usort($animals, function ($a, $b) { $order = ['Dog', 'Lion', 'Zeebra', 'Cat']; return (array_search($a["animal"],$order) <=> array_search($b["animal"],$order)); });
- MrsPop88