Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fel.oliveiraa

[Resolvido] html_entity_decode em um array

Recommended Posts

Pessoal,

 

Alguém sabe alguma forma de aplicar "html_entity_decode" em um array?

 

Eu já tentei mas não funciona..

html_entity_decode($array);

 

existe alguma outra maneira?

Compartilhar este post


Link para o post
Compartilhar em outros sites

só pode ser aplicado em um string. você precisa varrer o array com foreach

 

$array_resultante = array( null );
foreach($array as $valor) {
	  $array_resultante[] = html_entity_decode($valor);
}

// imprime valores
print_r($array_resultante);

Compartilhar este post


Link para o post
Compartilhar em outros sites

e quando tenho array dentro de array?

 

ex:

 

$array['destaque'][0]['nome']

$array['destaque'][1]['nome']

$array['subdestaque']['esquerda']['titulo']

$array['subdestaque']['direita']['titulo']

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho que percorrer string por string no array, até ai td bem...

mas como vou conseguir percorrer todas as strings se não sei quais são?

 

só dá pra percorrer qnd eu sei quais são?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sempre é bom criar arrays mais simples, facilitaria seu caso agora. Mas como você criou um array tridimensional, vai ter que ir separando os valores usando as funções que eu te indiquei na página. Tem como você retornar os valores dinamicamente, mesmo sem saber a quantidade deles. Vou te dar algumas dicas: com array_r() você imprime todos os dados do seu array. Isso é bom pra você visualizar o que está sendo inserido dentro dele. array_keys() você verifica as chaves que tem no array. Você pode até separar essas chaves com foreach. Tem a função array_map(), que no seu caso, é a mais indicada, que varre o array aplicando uma determinada função em todos os dados do array, e retorna um novo array como resultado: array_map (callback $callback, array $array1 [, ... ]) clique aqui -> http://br.php.net/manual/pt_BR/function.array-map.php. É só você dar uma olhada naquele link, antes desse que eu to postando agora. Lá tem tudo sobre array e bem explicado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria que criar uma função, usando is_array, para verificar se o ponteiro atual é uma chave ou um valor do array, e assim ir percorrendo recursivamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio,

 

Existe alguma forma de entrar no array?

 

exemplo:

 

Array ( [xml_pagina] => Array ( [destaque] => Array ( [imagem] => 19.jpg [credito] => Crédito [titulo] => Título [chamada] => <p>&lt;p&gt;teste&lt;/p&gt;</p> [link] => /tableless/jadel-vence-na-suica-maurren-e-so-a-quarta-colocada.php ) ) )

 

is_array($teste['xml_pagina']['destaque'])) (é um array)

então eu preciso entrar dentro dele e ir checando as chaves dele

 

is_array($teste['xml_pagina']['destaque']['imagem'])) (não é um array então dou o html_entity_decode )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é isso...

 

O que eu quero saber é como eu faço para chegar no próximo elemento do array

 

$array[teste][teste1][teste2]

 

Eu não consigo ir abrindo, o máximo q consigo é pegar o primeiro assim:

 

key = "teste";

 

$array[key]

 

 

Existe alguma maneira de fazer algo do tipo:

 

key= [teste][teste1][teste2];

 

$array.key = nono;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Depois de muitas pesquisar achei um exemplo com ponteiro

 

Tá ai se alguém precisar:

 

function converte(&$array) {

foreach ($array as $key => $arr) {

if(is_array($arr))

$res[$key] = converte($arr);

else $res[$key] = html_entity_decode($arr);

}

return $res;

}

$imagem = converte($imagem);

 

print_r($imagem);

Compartilhar este post


Link para o post
Compartilhar em outros sites

você apenas criou uma rotina recursiva..

algo que nao teria necessidade se tivesse prestado atenção às diversas respostas ..

 

 

o mais importante é que resolveu o problema. depois com o tempo você revê e melhora o que fez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.