以下数组需要按计划排序_no字段
阵列([0]=>stdClass对象([计划_no]=>100-3[件]=>0)[1] =>stdClass对象([计划_no]=>100[件]=>0)[2] =>stdClass对象([计划_no]=>100-2[件]=>0)[3] =>stdClass对象([计划_no]=>100[件]=>148)[4] =>stdClass对象([计划_no]=>102[件]=>0)[5] =>stdClass对象([计划_no]=>100-1[件]=>0))
我想要以下格式的阵列
阵列([0]=>stdClass对象([计划_no]=>100[件]=>0)[1] =>stdClass对象([计划_no]=>100[件]=>148)[2] =>stdClass对象([计划_no]=>100-1[件]=>0)[3] =>stdClass对象([计划_no]=>100-2[件]=>0)[4] =>stdClass对象([计划_no]=>100-3[件]=>0)[5] =>stdClass对象([计划_no]=>102[件]=>0))
使用php array_multsort()函数。
在这里观看直播
工作代码:
<?php
$values = array();
$a = new stdClass();
$a->planning_no = '100-3';
$a->pieces = '0';
$values[] = $a;
$a = new stdClass();
$a->planning_no = '100';
$a->pieces = '0';
$values[] = $a;
$a = new stdClass();
$a->planning_no = '100-2';
$a->pieces = '0';
$values[] = $a;
$a = new stdClass();
$a->planning_no = '100';
$a->pieces = '148';
$values[] = $a;
$a = new stdClass();
$a->planning_no = '102';
$a->pieces = '0';
$values[] = $a;
$a = new stdClass();
$a->planning_no = '100-1';
$a->pieces = '0';
$values[] = $a;
$n = array();
if (! empty($values)) {
foreach ($values as $value) {
$planning_no = str_replace('-', '.', $value->planning_no);
$n[] = array('planning_no' => $planning_no, 'pieces' => $value->pieces);
}
}
array_multisort($n);
$final = array();
if (! empty($n)) {
foreach ($n as $elem) {
$planning_no = str_replace('.', '-', $elem['planning_no']);
$a = new stdClass();
$a->planning_no = $planning_no;
$a->pieces = $elem['pieces'];
$final[] = $a;
}
}
echo '<pre>';print_r($final);echo '</pre>';
?>
输出:
Array
(
[0] => stdClass Object
(
[planning_no] => 100
[pieces] => 0
)
[1] => stdClass Object
(
[planning_no] => 100
[pieces] => 148
)
[2] => stdClass Object
(
[planning_no] => 100-1
[pieces] => 0
)
[3] => stdClass Object
(
[planning_no] => 100-2
[pieces] => 0
)
[4] => stdClass Object
(
[planning_no] => 100-3
[pieces] => 0
)
[5] => stdClass Object
(
[planning_no] => 102
[pieces] => 0
)
)