我有以下数组:
$array = array(
'note' => array(),
'year' => array('2011','2010', '2012'),
'type' => array('conference', 'journal', 'conference'),
);
Run Code Online (Sandbox Code Playgroud)
我使用以下函数使用字段类型和另一个数组对数组进行排序:
function array_multisort_by_order(array $array, $by, array $order)
{
$order = array_flip($order);
$params[] = $array[$by];
foreach($params[0] as &$v) $v = $order[$v];
foreach($array as &$v) $params[] = &$v; unset($v);
call_user_func_array('array_multisort', $params);
return $array;
}
Run Code Online (Sandbox Code Playgroud)
当我调用以下函数时,我收到以下错误:
$array = array_multisort_by_order($array, 'type', array('conference', 'journal'));
print_r($array['type']);
Run Code Online (Sandbox Code Playgroud)
错误:
Warning: array_multisort(): Array sizes are inconsistent.
Run Code Online (Sandbox Code Playgroud)
我知道数组是不一致的.有更好的功能使用吗?
请检查:键盘
期望的输出:
Array
(
[note] => Array
(
[0] =>
[1] =>
[2] => …Run Code Online (Sandbox Code Playgroud) 我希望能够在多个列上对多维数组进行排序.为了进一步复杂化,我希望能够为每个键/列设置特定的排序选项.我有类似DB查询的结果,但实际上并不是来自一个,因此需要在PHP而不是SQL中对其进行排序.
Array
(
[0] => Array
(
[first_name] => Homer
[last_name] => Simpson
[city] => Springfield
[state] => Unknown
[zip] => 66735
)
[1] => Array
(
[first_name] => Patty
[last_name] => Bouvier
[city] => Scottsdale
[state] => Arizona
[zip] => 85250
)
[2] => Array
(
[first_name] => Moe
[last_name] => Szyslak
[city] => Scottsdale
[state] => Arizona
[zip] => 85255
)
[3] => Array
(
[first_name] => Nick
[last_name] => Riviera
[city] => Scottsdale
[state] => Arizona
[zip] …Run Code Online (Sandbox Code Playgroud)