我真的很难弄清楚如何对大型数组进行排序。
数组是属性数据。我需要使用两个关键数据来按顺序排列数组。他们是:
这是数组
的一个例子[0]=>
array(8) {
["location"]=>
array(4) {
["street_name"]=>
string(10) "Derby Road"
}
["info"]=>
array(3) {
["status"]=>
string(9) "available"
}
["specs"]=>
array(1) {
["bedroom_number"]=>
string(1) "7"
}
}
status
密钥可以设置为let
,available
或其他一些选项。我需要做的是使let
的任何属性都落在数组的底部,但是在卧室数字顺序下降。
所以,我猜这些是两条规则:
'设'状态属性应始终是其卧室数中最低的,例如:
7 bedroom property - available
7 bedroom property - available
7 bedroom property - let
6 bedroom property - available
7 bedroom property - let
4 bedroom property - available
3 bedroom property - let
我知道usort()
的存在,但我不确定如何在函数中安排这种安排。
答案 0 :(得分:2)
我认为您可以使用usort然后使用数组键进行排序。
也许此设置可以帮助您:
<script>
var x = 0;
function test(){
x++;
var degree = x + 'deg';
var elem = document.getElementById("gradient1");
elem.style.background = 'linear-gradient(' + degree + 'red, orange)';
requestAnimationFrame(test);
}
requestAnimationFrame(test);
</script>
答案 1 :(得分:0)
您是否尝试过array_multisort函数?这是一个例子:
<?php
function array_orderby()
{
$args = func_get_args();
$data = array_shift($args);
foreach ($args as $n => $field) {
if (is_string($field)) {
$tmp = array();
foreach ($data as $key => $row)
$tmp[$key] = $row[$field];
$args[$n] = $tmp;
}
}
$args[] = &$data;
call_user_func_array('array_multisort', $args);
return array_pop($args);
}
?>
已排序的数组现在位于函数的返回值中,而不是通过引用传递。
<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
// Pass the array, followed by the column names and sort flags
$sorted = array_orderby($data, 'volume', SORT_DESC, 'edition', SORT_ASC);
?>