failed to attempt to assign property of an indexed object to an array

0

I'm trying to assign the index of an array to an object but I'm getting the following error; Error: Can not use object of type stdClass as array

// filtro estado
             $anuncios = array();
             $anunciosFiltro = $dalAnuncio->pesquisar();
             $dalLocalizacaoAUX = new dalLocalizacao();
             foreach ($anunciosFiltro as $anunciosArray) 
             {
                 $localizacaoPesquisa = new localizacao();
                 $localizacaoPesquisa->setCd($anunciosArray["cd_localizacao"]);  // o erro é reproduzido aqui
                 $localizaEstado = $dalLocalizacaoAUX->pesquisarPorId($localizacaoPesquisa)->getEstado(); 
                 $localizaMunicpio = $dalLocalizacaoAUX->pesquisarPorId($localizacaoPesquisa)->getMunicipio();
                 if($estado == $localizaEstado)
                 {
                     $anunciosQtdTotal++;
                         if(count($anuncios) < $max)
                         {
                         $anuncios[] = $anunciosArray;
                         }
                 }
             }
             $result['totalAnuncios'] = $anunciosQtdTotal;
            $anuncios = $dalAnuncio->filtrarPorEstado($estado, $init, $max);
            $result['totalAnuncios'] = count($anuncios);
        }
    
asked by anonymous 02.11.2018 / 23:35

1 answer

1

This is happening because you are trying to access the key of an object as if the object were an array. Can not say for your code, but would it be $anunciosFiltro generated by a JSON? JSON_DECODE generates objects instead of arrays.

In any case, to access keys of an object, use ->

$anunciosArray['cd_localizacao'];  /*forma de acessar a chave de um array*/
$anunciosArray->cd_localizacao;    /*forma de acessar a chave de um objeto*/

$chave = 'cd_localizacao';
$anunciosArray[$chave];    /*forma de acessar a chave de um array dinamicamente*/
$anunciosArray->{$chave};  /*forma de acessar a chave de um objeto dinamicamente*/
    
03.11.2018 / 00:07