2
I have a array of objects.
Ex.:
$array = array (1=$obj1, 2=$obj2...ect)
Turns out I’m converting these objects in arrays also to have a array of arrays instead of a object array for the purpose of transforming it into a array JSON
.
$todos = $produtosDao->pesquisaProdutos();
foreach ($todos as $cada):
$produto[] = (array) $cada;
endforeach;
Well, when I do print_r($produto)
, I have on the screen the following:
Note: I will put here only the first record not to be extended the post ok?
Array
(
[0] => Array
(
[ProdutosidProduto] => 1
[Produtostipo] => mp
[Produtosmodelo] => F540 2 BAN.PNEU. 100 X 60
[Produtosbandejas] => 2
[Produtospeso] => 0
[Produtosprensagem] => 0
[ProdutosprecoUnitario] => 6500
[Produtoscomprimento] => 100
[Produtoslargura] => 60
[Produtoscabo] => 0
[Produtosligacao] => n
[Produtospotencia] => 0
[Produtosconsumo] => 0
[Produtoscorrente] => 0
[Produtosdisjuntor] => 0
[Produtosdescricao] =>
Valor promocional limitado frete grátis ,para SP ,RJ ,MG ,ES. Os demais será cobrado apenas de SP para sua cidade ,valor de 500,00 ,a ser pago na entrega .
MAQUINA TOTALMENTE INDUSTRIAL E 100% NACIONAL .PRODUÇÃO DE ATÉ MIL PÇS POR DIA EM HORÁRIO NORMAL DE TRABALHO ,SISTEMA DIGITAL AUTOMATIZADO DE ÚLTIMA GERAÇÃO , SISTEMA PNEUMÁTICO COMPACTO E UNIFORME RECEBENDO A MESMA PRESSÃO EM TODA ÁREA DE ESTAMPAGEM, EVITANDO ASSIM OS SOMBREAMENTOS E EFEITOS FANTASMA NA ESTAMPA , SISTEMA DE RESISTÊNCIA DE ALTA QUALIDADE A MELHOR DO MERCADO AÇO INOX 304 , DANDO UMA VIDA ÚTIL MUITO SUPERIOR AS DEMAIS DO MERCADO , E FÁCIL TROCAS DAS RESISTÊNCIAS NÃO SENDO NECESSÁRIO TÉCNICO NO LOCAL , COM APENAS 4 PARAFUSOS O CLIENTE MESMO FAZ A TROCA, AS DEMAIS A RESISTÊNCIA É FUNDIDA NA CHAPA DE ALUMÍNIO SENDO IMPOSSÍVEL A TROCA APENAS DAS RESISTÊNCIAS , TEMOS TODAS AS PÇS DA PRENSA EM VALORES BEM ACESSÍVEIS.
[Produtosestoque] => 7
[ProdutosfreteGratis] => s
[Produtosbloqueado] => n
)
When I see the source code, Ctrl+u, I have the following: I did not Ctr+C here because when I go to glue the spaces are disappearing. Note: Note that in printscream We have spaces in index names. But on the way out print_r there is no such space.
Well my question is this:.
I need to make one str_replace
as a resource to exclude space in the names of the indexes below:
var res1 = Array();
res1 = <?php echo str_replace("\u0000", "", json_encode($produto)); ?>;
document.write(res1[0]["ProdutosidProduto"])
I would like to know if there is any recourse for such a manoeuvre not to be necessary.
Script output without the str_replace()
;
var res1 = Array();
res1 = [{"\u0000Produtos\u0000idProduto":"1","\u0000Produtos\u0000tipo":"mp","\u0000Produtos\u0000modelo":"F540 2 BAN.PNEU. 100 X 60","\u0000P
You just want to take the spaces? a
trim()
doesn’t solve?– Jorge.M
solve does not solve because technically there are NO spaces. Only in Ctr+u they exist. So what you have to remove is u000. But I believe that this should not be the most coherent way to proceed. I have tried to add headers, html and php, to UTF-8 and not solved.
– Carlos Rocha
Test this map:
$keys = array_map('trim', array_keys($produto));$produto = array_combine($keys, $produto);
– edson alves
thanks @Edson Alves. The goal is to use only a charset header that gets me rid of these gabiarras. Understand? kkk. But since you don’t have it, I should continue with str_replace()
– Carlos Rocha
Strange that json_encode has threaded these spaces into its array. It seems that there is something modifying the Keys
– edson alves
that’s exactly what I intend to find out! As I already said, I’ve tried even using UTF-8 headers
– Carlos Rocha
This is the problem related to your previous question. These spaces are where the JSON parser is replacing the spaces with u0000. They are not visible in print_r, but in the source code yes.
– Sam