我有一个带有页面标题列表的XML数组。我从标题中提取了日期部分,得到了一个类似于:
的数组Array ( [0] => 2012 )
Array ( [0] => 2013 )
Array ( [0] => 2013 )
Array ( [0] => 2014 )
Array ( [0] => 2014 )
Array ( [0] => 2014 )
Array ( [0] => 2015 )
我的问题是我如何遍历日期数组,以便在每个新年之间得到一个空行,例如:
2012 - BLA
2013 - BLA BLA
2013 - BLABLA
2014- BLA BLA BLA
2014- BLA BLA BLA
2014- BLA BLA BLA
2015- BLA
我的想法是从标题中提取日期部分,然后浏览数组,并为每个新的唯一值设置一个新行。环顾四周,我没有找到一种方法,没有删除重复的值。有办法吗?拜托,我很感激任何帮助。
此致
XML示例:
SimpleXMLElement Object ( [@attributes] => Array ( [version] => 2.0 ) [channel] => SimpleXMLElement Object ( [title] => Results [description] => Search Results [link] => http://...... [item] => Array ( [0] => SimpleXMLElement Object ( [title] => 2012 Blah , Blah Blah, Blah [description] => <b>Introduction</b> ...Long text.. [link] => http... [1] => SimpleXMLElement Object ( [title]
...
我所做的就是花了一年的时间用:
$year = substr(str_replace($type.", ", "", $xmlfeed->channel->item[$i]->title),0,4);
答案 0 :(得分:0)
如果您的数组包含问题中的数组,那么我建议这样做: DEMO HERE:
foreach($arrayOfArrays as $array){
$simpleArray[]= $array[0];//simple array that contains only years
}
sort($simpleArray, SORT_NUMERIC); //we sort this array by year
foreach($simpleArray as $year){
echo $year.' Bla Bla Bla <br/>';//display every year in a line
}
<强>输出:强>
2011 Bla bla bla
2012 Bla bla bla
2013 Bla bla bla
2013 Bla bla bla
2013 Bla bla bla
2015 Bla bla bla
答案 1 :(得分:0)
试试这个解决方案
<?php
$arr[0] = array (2015,'A15');
$arr[1] = array (2014,'D14');
$arr[2] = array (2014,'E14');
$arr[3] = array (2013,'B13');
$arr[4] = array (2013,'C13');
$arr[5] = array (2012,'F12');
$data = array();
foreach($arr as $key => $val) {
$data[$key]=$val[0];
}
array_multisort($data,SORT_ASC,$arr);
$check=$arr[0][0];
for($i=0;$i<count($arr);$i++) {
if($arr[$i][0]!=$check) {
$check=$arr[$i][0];
print "<br/>";
}
print $arr[$i][0] . "---" . $arr[$i][1] . "<br/>";
}
?>
输出
2012---F12
2013---B13
2013---C13
2014---D14
2014---E14
2015---A15