array([0] => array(
['id'] => 1['type'] => '普通发票'['weight'] => 1['is_start'] => 1)
[1] => array(
['id'] => 2['type'] => '增值税专用发票'['weight'] => 2['is_start'] => 1)
[2] => array(
['id'] => 3['type'] => '收据'['weight'] => 0['is_start'] => 1)
[3] => array(
['id'] => 4['type'] => '测试'['weight'] => 4['is_start'] => 0)
)
我想重新排序数组,用weight的值来排序第一层
得到的结果的应该是如下这样:
array(
[0] => array(
['id'] => 3['type'] => '收据'['weight'] => 0['is_start'] => 1)
[1] => array(
['id'] => 1['type'] => '普通发票'['weight'] => 1['is_start'] => 1)
[2] => array(
['id'] => 2['type'] => '增值税专用发票'['weight'] => 2['is_start'] => 1)
[3] => array(
['id'] => 4['type'] => '测试'['weight'] => 4['is_start'] => 0)
)
假定这个数组的为$invoice,要如何去操作它?
PHP有很多数组函数可以利用,但是不知道哪个才是。
0 => array( 'id' => 1, 'type' => 'æ®éå票', 'weight' => 1, 'is_start' => 1),
1 => array( 'id' => 2, 'type' => 'å¢å¼ç¨ä¸ç¨å票', 'weight' => 2, 'is_start' => 1),
2 => array( 'id' => 3, 'type' => 'æ¶æ®', 'weight' => 0, 'is_start' => 1),
3 => array( 'id' => 4, 'type' => 'æµè¯', 'weight' => 4, 'is_start' => 0)
);
var_dump($fruits);
function compare($x,$y)
{
if($x['weight'] == $y['weight'])
return 0;
elseif($x['weight'] < $y['weight'])
return -1;
else
return 1;
}
usort($fruits,"compare");
echo $fruits[0]['id']."<br />";
echo $fruits[1]['id']."<br />";
echo $fruits[2]['id']."<br />";
echo $fruits[3]['id']."<br />";