数组包含以下方式的数据
$blog = array(
1 => array(
'blog_id' => 1,
'blog_year' => 2013),
2 => array(
'blog_id' => 2,
'blog_year' => 2013),
3 => array(
'blog_id' => 3,
'blog_year' => 2014),
4 => array(
'blog_id' => 4,
'blog_year' => 2014)
);
我想以下列格式显示这些数据。
2013: 博客1 博客2
2014: 博客3 博客4
请帮助我,我很多天都在解决这个问题。
答案 0 :(得分:0)
你可以这样做。它应该主要按blog_year
对多维数组进行排序,然后按blog_id
进行排序。
<?php
$blog = array(
2 => array(
'blog_id' => 1,
'blog_year' => 2013
),
3 => array(
'blog_id' => 4,
'blog_year' => 2014
),
1 => array(
'blog_id' => 2,
'blog_year' => 2013
),
4 => array(
'blog_id' => 3,
'blog_year' => 2014
)
);
usort($blog, function($a, $b) {
if ($a['blog_id'] < $b['blog_id']) {
return -1;
} elseif ($a['blog_id'] > $b['blog_id']) {
return 1;
} else {
return strcmp($b['blog_year'], $a['blog_year']);
}
});
$temp_year = '';
foreach($blog as $item){
if($item['blog_year'] != $temp_year){
echo ($temp_year != '') ? "\n":'';
$temp_year = $item['blog_year'];
echo $item['blog_year'] .':';
}
echo ' blog '. $item['blog_id'];
}
输出应为:
2013: blog 1 blog 2
2014: blog 3 blog 4