如何在不删除重复项的情况下从数组中获取特定值


how to get specific values from an array without removing their duplicates?

我有一个带有页面标题列表的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部分:

$year = substr(str_replace($type.", ", "", $xmlfeed->channel->item[$i]->title),0,4);

如果你的数组包含你的问题中的数组,那么我建议这样做:演示在这里

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

试试这个解决方案

<?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