For the logic that you are trying to implement, you can go through all the arrays inside the principal, and for each one of them, check if it contains the value you are looking for using the array_search
function. This function returns the key associated with the value or false
if it does not exist. When it exists and is not the first element it finds, it assigns the value ''
to clear.
Implementation example:
function removerValoresDuplicadas(&$array, $valor){
$primeiroEncontrado = false;
for ($i = 0; $i < count($array); ++$i){
//obtem a chave associada ao valor ou false caso não exista nenhuma
$chave = array_search($valor, $array[$i]);
if ($chave !== false){ //se existe o valor
if ($primeiroEncontrado === false){ //caso especial para não limpar o primeiro
$primeiroEncontrado = true;
}
else {
$array[$i][$chave] = ''; //limpa
}
}
}
}
$dados = Array(
Array("forn_nome_fantasia" => "FORNECEDOR TESTE",
"class_nvl4_descricao" => "DESPESAS COM FRETES" ),
Array("forn_nome_fantasia" => "DJ/ DESEO -SALA DE ESTAR",
"class_nvl4_descricao" => "DESPESAS COM FRETES" )
);
removerValoresDuplicadas($dados, "DESPESAS COM FRETES");
print_r($dados);
Output:
Array
(
[0] => Array
(
[forn_nome_fantasia] => FORNECEDOR TESTE
[class_nvl4_descricao] => DESPESAS COM FRETES
)
[1] => Array
(
[forn_nome_fantasia] => DJ/ DESEO -SALA DE ESTAR
[class_nvl4_descricao] =>
)
)
Notice that I built a function that gets the value that you want to delete from the array to make it more flexible and easily eliminate others you want
Example on Ideone