我有一个数组,我需要将所有具有相同ID [id_promo]或[name]的项目分组,如果可能的话,所有名称都按照alfabetic顺序排序
我的数组是:
Array (
[0] => Array ( [nome] => 0012 – Inês Marinho Lopes [id_promo] => 1897 [foto] => 1898 [entrega] => 12/03/2016 [devoluçao] => 18/03/2016 [devolvido] => Não )
[1] => Array ( [nome] => 0015 – Daniela Palhares [id_promo] => 1912 [foto] => 1913 [entrega] => 30/03/2016 [devoluçao] => 29/03/2016 [devolvido] => Não )
[2] => Array ( [nome] => 0031 – Cláudia Fonseca [id_promo] => 2026 [foto] => 2027 [entrega] => [devoluçao] => [devolvido] => Não )
[3] => Array ( [nome] => 0015 – Daniela Palhares [id_promo] => 1912 [foto] => 1913 [entrega] => 30/03/2016 [devoluçao] => 29/03/2016 [devolvido] => Não )
)
我需要将它们分组如下:
Array (
[0] => Array ( [nome] => 0031 – Cláudia Fonseca [id_promo] => 2026 [foto] => 2027 [entrega] => [devoluçao] => [devolvido] => Não )
[1] => Array ( [nome] => 0015 – Daniela Palhares [id_promo] => 1912 [foto] => 1913 [entrega] => 30/03/2016 [devoluçao] => 29/03/2016 [devolvido] => Não )
[2] => Array ( [nome] => 0015 – Daniela Palhares [id_promo] => 1912 [foto] => 1913 [entrega] => 30/03/2016 [devoluçao] => 29/03/2016 [devolvido] => Não )
[3] => Array ( [nome] => 0012 – Inês Marinho Lopes [id_promo] => 1897 [foto] => 1898 [entrega] => 12/03/2016 [devoluçao] => 18/03/2016 [devolvido] => Não )
)
我尝试了一些foreach组合,但我不能让它工作......
tks
答案 0 :(得分:0)
您可以尝试这样的事情:
$newArray = Array();
foreach($oldArray as $key => $item)
{
$newArray[$item['id_promo']][$key] = $item;
}
ksort($newArray, SORT_NUMERIC);
的参考
答案 1 :(得分:0)
你可以使用方法uasort结合回调函数
$arr = Array(); //This is your base array
function compare($a, $b) {
if ($a['nome'] == $b['nome']) {
return 0;
}
return ($a['nome'] < $b['nome']) ? 1 : -1;
}
usort($arr, 'compare');
这将仅在[nome]键上对数组进行排序。我认为你应该尝试增强它以使用[id_promo]和/或[name]。
您可以在usort
上找到详细的文档