我尝试根据特定关键字对第二级值进行排序。在这种情况下,该关键字为red
。
如果我检查回调函数中的步骤似乎有效,但最终结果没有改变。它还按字母顺序对顶级键进行排序。
$data = array(
'foo' => array(
'red', 'green'
),
'bar' => array(
'yellow', 'red'
),
);
print_r($data);
uasort($data, function($data) {
$matches = preg_grep("/red/", $data);
$rest = array_diff($data, $matches);
$order = array_merge($matches, $rest);
return $order;
});
print_r($data);
答案 0 :(得分:2)
您的代码无法正常工作,因为$data = array(
'foo' => array(
'red', 'green'
),
'bar' => array(
'yellow', 'red'
),
);
array_walk($data,function(&$v){
uasort($v,function($a,$b){
return preg_match('/red/',$a)?-1:1;
});});
print_r($data);
仅对您在第一个参数(第一级数组($ data)中传递给它的数组进行排序。其余的代码虽然在运行和语法上都是正确的,但也无济于事。
这是一个有效的例子:
uasort()
<service>.hostname.com ,
。