Php 如何对数组进行排序

Php 如何对数组进行排序,php,mysql,Php,Mysql,如何通过保留密钥对数组进行排序 $arr = array(strong text 'a' => array('date' => time() - 1000), 'b' => array('date' => time() - 2000), 'c' => array('date' => time() - 3000), ); 我想根据time()进行排序。有几个PHP函数可以对数组进行排序-您可以在这里看到概述: 由于您既不想按键也不想按

如何通过保留密钥对数组进行排序

 $arr = array(strong text
    'a' => array('date' => time() - 1000),
    'b' => array('date' => time() - 2000),
    'c' => array('date' => time() - 3000),
);

我想根据time()进行排序。

有几个PHP函数可以对数组进行排序-您可以在这里看到概述:

由于您既不想按键也不想按值,而是想按您的某些自定义逻辑,因此需要使用以u开头的函数之一。在这3个函数中,有2个可用于按值排序:usortuasort。它们之间的区别在于,第一个不保留键值关联,第二个保留,这使得uasort成为您需要的函数

uasort接受两个参数-一个要排序的数组和一个回调,如果第一个元素小于、等于或大于第二个元素,则对于两个给定元素,该参数应返回-1、0或1

在您的情况下,这将起作用:

print_r($arr);

uasort($arr, function($e1, $e2) {
  if ($e1['date'] == $e2['date']) {
    return 0;
  }
  return ($e1['date'] < $e2['date']) ? -1 : 1;
});

print_r($arr);
print\r($arr);
uasort($arr,函数($e1,$e2){
如果($e1['date']=$e2['date']){
返回0;
}
报税表($e1['date']<$e2['date'])?-1:1;
});
印刷费($arr);

注意:确保不要将uasort的结果分配给$arr-此函数的返回值不是排序数组,而是一个布尔值,表示排序成功。

您想按什么排序?根据我想缩短的时间()
print_r($arr);

uasort($arr, function($e1, $e2) {
  if ($e1['date'] == $e2['date']) {
    return 0;
  }
  return ($e1['date'] < $e2['date']) ? -1 : 1;
});

print_r($arr);