如何从中订购数组:
$unordered_array = ['11196311|3','17699636|13','11196111|0','156875|2','17699679|6','11196237|7','3464760|10'];
对此
$ordered_array = ['11196111', '156875', '11196311', '17699679','11196237','3464760', '17699636'];
“|”后面的数字定义位置,数组需要从低到高排序,并去掉最终数组中的位置号。
$array = array();
foreach($unordered_array as $value) {
$value = explode('|', $value);
$array [$value[1]]= $value[0];
}
ksort($array);
$ordered_array = array_values($array);
var_dump($ordered_array);
将值拆分为两个包含 ids 和排序优先级的数组,然后使用优先级数组对 ids 数组进行排序。当相同的优先级编号分配给多个 id 时,以下方法甚至可以发挥作用。
代码:(演示)
$unordered_array = ['11196311|3','17699636|13','11196111|0','156875|2','17699679|6','11196237|7','3464760|10'];
$ids = [];
$priorities = [];
foreach ($unordered_array as $v) {
[$ids[], $priorities[]] = explode('|', $v);
}
array_multisort($priorities, SORT_NUMERIC, $ids);
var_export($ids);