嗨我有一个数组,它是2个独立数组的组合,产生相同的结果,以下是合并后的数组:
Array
(
[0] => Array
(
[event_id] => 16
[user_id] => 3
[date_created] => 20130227095010
)
[1] => Array
(
[event_id] => 15
[user_id] => 2
[date_created] => 20130227101734
)
[2] => Array
(
[event_id] => 16
[user_id] => 2
[date_created] => 20130227094856
)
)
从这里开始,我如何基于date_created desc或asc再次排序,而不使用我之前合并过的2个数组?
更新: 上一个数组结果
ARRAY1:
Array
(
[0] => Array
(
[event_id] => 15
[user_id] => 2
[date_created] => 20130227101734
)
[1] => Array
(
[event_id] => 16
[user_id] => 2
[date_created] => 20130227094856
)
)
阵列2:
Array
(
[0] => Array
(
[event_id] => 16
[user_id] => 3
[date_created] => 20130227095010
)
)
如何在这些函数中使用循环来为上述每个数组提取date_created
usort($array,function($a, $b) { return $a['date_created'] - $b['date_created']; });
答案 0 :(得分:1)
您可以创建自己的排序函数回调,并将其与usort
方法一起使用。
需要重新使用前两个阵列。
usort($yourMergedArray, yourCallBackSort);
和
function yourCallBackSort($firstEntry, $secondEntry)
{
// Do some stuff to compare your values and return -1, 0 or 1
// depend if $firstEntry id <, = or > to $secondEntry
}
答案 1 :(得分:1)
使用usort()
之类的内容非常简单。
usort($array,
function($a, $b) { return $a['date_created'] - $b['date_created']; });
答案 2 :(得分:0)
试试这个,
$sort = array();
foreach($your_combined_array as $k=>$v) {
$sort['date_created'][$k] = $v['date_created'];
}
array_multisort($sort['date_created'], SORT_DESC, $your_combined_array);
echo "<pre>";
print_r($your_combined_array);