Boa noite, preciso de uma ajuda com o código abaixo:
- Dentro da variável '$dados' tenho uma array em que o id repete com datas diferentes, preciso descartar uma das duas arrays repetidas com o mesmo 'id', mantendo a de menor data, ou seja, o resultado final seria:
"Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) , [1] => Array ( [id] => 13 [data] => 2020-06-10 ) ) "
- já tentei de tudo um pouco a princípio estou trabalhando com a ideia de loop dentro de loop, para varrer e comparar, mas como vcs podem ver estou deixando passar alguma coisa;
<?php
$dados = [array("id" =>12, "data"=>"2020-07-02"),
array("id" =>13, "data"=>"2020-06-10"),
array("id" =>13, "data"=>"2020-06-15"),
array("id" =>12, "data"=>"2020-05-12")];
$total = count($dados);
foreach($dados as $item){
for($i=1; $i < $total; $i++){
if($item['id'] == $dados[$i]['id']){
if(strtotime($item['data']) <= strtotime($dados[$i]['data'])){
unset($dados[$i]);
$dados = array_values($dados);
$total = count($dados);
}
}
}
}
print_r($dados);
Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) ) //resultado
Se alguém achar o erro, ou uma forma de resolver esse problema ficarei muito agradecido!
Obrigado e Um grande abrs a todos!