我正在尝试按键中的日期和名称的值对以下数据进行排序。
目的是获得一个很好的日期排序数组,其中包含内部数组中所有名称的字母顺序。
to spread-culture
ask one-of turtles [
let tag-index random 11
let my-tag-at-index item tag-index t-culture-tags
if any? other turtles in-radius 10 [
ask other turtles in-radius 10 [
set t-culture-tags replace-item tag-index t-culture-tags my-tag-at-index
set color sum t-culture-tags + 50
]
]
]
tick
end
我很确定我应该使用Array
(
[2017-07-27] => Array
(
[0] => stdClass Object
(
[Job] => stdClass Object
(
[Name] => Orange
)
)
[4] => stdClass Object
(
[Job] => stdClass Object
(
[Name] => Apple
)
)
)
[2017-07-22] => Array
(
[6] => stdClass Object
(
[Job] => stdClass Object
(
[Name] => Apple
)
)
[7] => stdClass Object
(
[Job] => stdClass Object
(
[Name] => Orange
)
)
)
[2017-07-29] => Array
(
[9] => stdClass Object
(
[Job] => stdClass Object
(
[Name] => Orange
)
)
[11] => stdClass Object
(
[Job] => stdClass Object
(
[Name] => Plumb
)
)
)
)
,但无法获得理想的结果。
答案 0 :(得分:0)
如果要对对象属性进行排序,则必须拆分代码,使用usort函数。
$ arr是你的数组:
uksort($arr, 'dateCmp');
foreach($arr as &$sub){
usort($sub, 'propCmp');
}
function dateCmp($a, $b){
return (strtotime($a) < strtotime($b) ? -1 : 1);
}
function propCmp($a, $b){
return ($a->Job->Name < $b->Job->Name ? -1 : 1);
}
答案 1 :(得分:0)
请尝试以下代码,
$sorted_vals = array();
ksort($multiArrs);
foreach($multiArrs as $key => $value) { // $multiArrs = your data array
$columns = null;
foreach ($value as $index => $element) {
$columns[] = $element->Job;
}
$temp = $value;
array_multisort($columns, SORT_ASC, $temp);
$sorted_vals[$key] = $temp;
}