Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Criando uma função para deletar os itens

Olá tentei criar uma função para deletar os itens com o unset() passando dentro dele um $elemento e um $item. Mas não deu certo, o que precisaria ser feito para corrigir ela?

    function deletaItem(string $elemento,array $item)
    {
        unset($elemento[$item]);
    }
4 respostas

Oi Gustavo,

Observe que você está usando os parâmetros de maneira invertida dentro da função. Nos parâmetros você definiu $item como o seu array, logo você deveria fazer unset($item[$elemento]). Nesse caso seria interessante você renomear o nome da função para "deletarElemento" ou então mudar os nomes dos parâmetros para a leitura do código ficar mais coerente.

Outro detalhe é que você está criando complexidade desnecessária no seu código por que a sua função "deletarItem" faz exatamente o que a função "unset" realiza, notou? Seria interessante criar uma função nova caso ela realize uma lógica a mais de acordo com alguma necessidade.

Olá, Gustavo.

Conseguiu entender a resposta (e a dica) do Diego? Continua com a dúvida? Não esquece de marcar o tópico como solucionado... :-)

Bom eu tentei ajustar a função a mesmo assim ela continua dando erros, agora ele está assim:

  function deletarItem(array $elemento,string $item)
    {
        unset($elemento[$item]);
    }
    deletarItem($contasCorrentes["147.258.369-79"]);

Mas ela também está dando o seguinte erro:

Expected 2 arguments. Found 1.
solução!

Gustavo, sua função espera 2 parâmetros e você tá passando um só. O melhor a fazer seria, como o Diego sugeriu:

unset($contasCorrentes["147.258.369-79"]));

Mas se você realmente quiser usar essa função, precisa passar os parâmetros de forma separada, como você definiu:

deletarItem($contasCorrentes, "147.258.369-79");

Recomendo rever o capítulo de funções pra fixar um pouco melhor o conteúdo. :-)