我有一份奖项列表,我想按年份分组和列出。我能够列出这些项目,但是没有成功嵌套它们。
///// ARRAY
Array
(
[0] => Array
(
[Award] => Array
(
[id] => 5
[order] => 4
[publish] => 1
[year] => 2015
[title] => Test Award #5
[copy] => Duis aute irure dolor in reprehenderit.
[slug] => test-award-5
)
)
[1] => Array
(
[Award] => Array
(
[id] => 4
[order] => 3
[publish] => 1
[year] => 2014
[title] => Test Award #4
[copy] => Duis aute irure dolor in reprehenderit.
[slug] => test-award-4
)
)
[2] => Array
(
[Award] => Array
(
[id] => 1
[order] => 0
[publish] => 1
[year] => 2013
[title] => Test Award #1
[copy] => Duis aute irure dolor in reprehenderit.
[slug] => test-award-1
)
)
[3] => Array
(
[Award] => Array
(
[id] => 2
[order] => 1
[publish] => 1
[year] => 2013
[title] => Test Award #2
[copy] => Duis aute irure dolor in reprehenderit.
[slug] => test-award-2
)
)
)
//// CONTROLLER
class AwardsRecognitionController extends AppController {
var $name = 'Award';
/*****
PUBLIC
*****/
function index(){
$awards=$this->Award->find('all', array(
'conditions'=>array('publish'=>1),
'order'=>array('Award.year DESC')
));
$this->set('awards', $awards);
}
//// VIEW
<div id="award_container">
<?php
echo "<ul>";
foreach($awards as $award){
echo "
<li class='award' style='color:black;'>
<strong>".$award['Award']['year']."</strong>
<span class='award_title'>".$award['Award']['title']."</span>
<p>".$award['Award']['copy']."</p>
</li>
";
}
?>
</div>
我要做的是将数据输出到这样的嵌套列表中。
2015
Test Award #5
2014
Test Award #4
2013
Test Award #2
Test Award #1
欢迎任何帮助!谢谢!
答案 0 :(得分:0)
$array = [your existing array];
$n = array();
foreach($array as $a) {
$year = $a['Award']['year'];
if(!isset($n[$year])) { $n[$year] = array(); }
$n[$year][] = $a['Award'];
}
// now you have a new array $n looking like this
print_r($n);
ksort($n); // sort array by key
// and you can walk through it
foreach($n as $year => $awards) {
echo $year."<br>";
foreach($awards as $aw) {
echo $aw['title']."<br>";
}
}
答案 1 :(得分:0)
$new = array();
foreach ($awards as $key => $award){
$new[$award['Award']['year']][] = $award['Award'];
}
var_dump($new);
输出:
Array(
[2015] => Array(
[0] => Array(
[id] => 5
[order] => 4
[publish] => 1
[year] => 2015
[title] => Test Award #5
[copy] => Duis aute irure dolor in reprehenderit.
[slug] => test-award-5
)
)
[2014] => Array(
[0] => Array(
[id] => 4
[order] => 3
[publish] => 1
[year] => 2014
[title] => Test Award #4
[copy] => Duis aute irure dolor in reprehenderit.
[slug] => test-award-4
)
)
[2013] => Array(
[0] => Array(
[id] => 1
[order] => 0
[publish] => 1
[year] => 2013
[title] => Test Award #1
[copy] => Duis aute irure dolor in reprehenderit.
[slug] => test-award-1
)
[1] => Array(
[id] => 2
[order] => 1
[publish] => 1
[year] => 2013
[title] => Test Award #2
[copy] => Duis aute irure dolor in reprehenderit.
[slug] => test-award-2
)
)
)