PHP 多维数组按照指定的顺序进行排序
PHP 多维数组按照指定的顺序进行排序
public function ceshi()
{
$arr1 = array(
array('id' => 1, 'name' => 'yhp'),
array('id' => 2, 'name' => 'yhp2'),
array('id' => 3, 'name' => 'yhp3'),
array('id' => 4, 'name' => 'yhp4'),
array('id' => 5, 'name' => 'yhp5'),
array('id' => 6, 'name' => 'yhp6'),
array('id' => 7, 'name' => 'yhp7'),
array('id' => 8, 'name' => 'yhp8'),
array('id' => 9, 'name' => 'yhp9'),
array('id' => 10,'name' => 'yhp10'),
);
echo "排序前的数组:<pre>";
print_r($arr1);
echo "</pre>";
usort($arr1, array($this, "compare"));
echo "排序后的数组:<pre>";
print_r($arr1);
echo "</pre>";
}
public function compare($a, $b)
{
$arr2 = array(6,8,7,9,3,2,4,1,5,10,11,12);
return (array_search($a['id'], $arr2) < array_search($b['id'], $arr2)) ? -1 : 1;
}
前面根据指定顺序合并 后面随便
public function ceshi()
{
$arr1 = array(
array('id' => 1, 'name' => 'yhp'),
array('id' => 2, 'name' => 'yhp2'),
array('id' => 3, 'name' => 'yhp3'),
array('id' => 4, 'name' => 'yhp4'),
array('id' => 5, 'name' => 'yhp5'),
array('id' => 6, 'name' => 'yhp6'),
array('id' => 7, 'name' => 'yhp7'),
array('id' => 8, 'name' => 'yhp8'),
array('id' => 9, 'name' => 'yhp9'),
array('id' => 10,'name' => 'yhp10'),
);
$arr2 = array(6,8,7,9);
$arrNum = count($arr1);
for($i=0;$i<$arrNum;$i++){
if(in_array($arr1[$i]['id'],$arr2) ){
$headData[] = $arr1[$i];
unset($arr1[$i]);
}
}
//echo "排序后的数组:";
usort($headData, array($this, "compare"));
print_r(array_merge($headData,$arr1));
}
public function compare($a, $b)
{
$arr2 = array(6,8,7,9);
return (array_search($a['id'], $arr2) < array_search($b['id'], $arr2)) ? -1 : 1;
}
参考链接
PHP 多维数组按照指定的顺序进行排序
还没有评论,来说两句吧...