我有以下代码
foreach($reportsResult->getRecords() as $key => $reportRecord){
$input = array($reportRecord->getField('Term').' - '.$reportRecord->getField('Year'));
$result = array_unique($input);
print_r($result);
}
正在产生类似
的输出Array ( [0] => Winter - 2010 )
Array ( [0] => Winter - 2010 )
Array ( [0] => Winter - 2010 )
Array ( [0] => Winter - 2010 )
Array ( [0] => Winter - 2010 )
Array ( [0] => Winter - 2010 )
Array ( [0] => Winter - 2010 )
Array ( [0] => Winter - 2010 )
Array ( [0] => Winter - 2010 )
Array ( [0] => Spring - 2011 )
Array ( [0] => Spring - 2011 )
Array ( [0] => Spring - 2011 )
Array ( [0] => Spring - 2011 )
Array ( [0] => Spring - 2011 )
Array ( [0] => Spring - 2011 )
Array ( [0] => Spring - 2011 )
Array ( [0] => Spring - 2011 )
Array ( [0] => Spring - 2011 )
Array ( [0] => Summer - 2011 )
Array ( [0] => Summer - 2011 )
Array ( [0] => Summer - 2011 )
Array ( [0] => Summer - 2011 )
Array ( [0] => Summer - 2011 )
Array ( [0] => Summer - 2011 )
Array ( [0] => Summer - 2011 )
我想做的是获得独特的价值,在这种情况下,冬季 - 2010年,2011年春季,2011年夏季。
有人可以告诉我如何做到这一点,我认为array_unique
可能是解决方案,但我猜它是数值存储在数组中的方式吗?
答案 0 :(得分:2)
为什么不将值添加到在循环范围之外定义的数组?
$array = array();
foreach($reportsResult->getRecords() as $key => $reportRecord){
$array[] = $reportRecord->getField('Term').' - '.$reportRecord->getField('Year');
}
$array = array_unique($array);
答案 1 :(得分:1)
问题是您将$input
设置为每个循环的一个项目数组。在一个项目数组上执行array_unique
将返回您开始使用的相同数组。
您需要在循环中构建一个数组,然后在循环外部执行array_unique
。像这样:
$input = array()
foreach($reportsResult->getRecords() as $key=>$reportRecord){
$input[] = $reportRecord->getField('Term').' - '.$reportRecord->getField('Year');
}
$result = array_unique($input);