(array) $ each; and open

1

I have an array ($ all ) of objects ( $ each ) and the following foreach :

  foreach ($todos as $cada):

     $produto[] = (array) $cada;

     $produtos[] = array(
           'idProduto' => $cada->getIdProduto(),
           'tipo' => $cada->getTipo(),
           'modelo' => $cada->getModelo(),
           'bandejas' => $cada->getBandejas(),
           'peso' => $cada->getPeso(),
           'prensagem' => $cada->getPrensagem(),
           'precoUnitario' => $cada->getPrecoUnitario(),
           'comprimento' => $cada->getComprimento(),
           'largura' => $cada->getLargura(),
           'cabo' => $cada->getCabo(),
           'ligacao' => $cada->getLigacao(),
           'potencia' => $cada->getPotencia(),
           'cosumo' => $cada->getConsumo(),
           'corrente' => $cada->getCorrente(),
           'disjuntor' => $cada->getDisjuntor(),
           'descricao' => $cada->getDescricao(),
           'estoque' => $cada->getEstoque(),
           'freteGratis' => $cada->getFreteGratis(),
           'bloqueado' => $cada->getBloqueado()
           );   

  endforeach;

I need to convert the arrays $ product and products into JSON

Follow the PRINT_R() of both.

This is PRINT_R of Array $ product:

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
        )

    [1] => Array
        (
            [ProdutosidProduto] => 2
            [Produtostipo] => mp
            [Produtosmodelo] => F540 2 BAN.PNEU.80X100 A VISTA BOLETO PAGSEGURO
            [Produtosbandejas] => 2
            [Produtospeso] => 190
            [Produtosprensagem] => 300
            [ProdutosprecoUnitario] => 7500
            [Produtoscomprimento] => 70
            [Produtoslargura] => 100
            [Produtoscabo] => 6
            [Produtosligacao] => b
            [Produtospotencia] => 7500
            [Produtosconsumo] => 3
            [Produtoscorrente] => 35
            [Produtosdisjuntor] => 40
            [Produtosdescricao] => 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. 
www.topuhrens.de




            [Produtosestoque] => 8
            [ProdutosfreteGratis] => n
            [Produtosbloqueado] => n
        )

This is PRINT_R of Array $ products:

Array
(
    [0] => Array
        (
            [idProduto] => 1
            [tipo] => mp
            [modelo] => F540 2 BAN.PNEU. 100 X 60
            [bandejas] => 2
            [peso] => 0
            [prensagem] => 0
            [precoUnitario] => 6500
            [comprimento] => 100
            [largura] => 60
            [cabo] => 0
            [ligacao] => n
            [potencia] => 0
            [cosumo] => 0
            [corrente] => 0
            [disjuntor] => 0
            [descricao] => 
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. 
            [estoque] => 7
            [freteGratis] => s
            [bloqueado] => n
        )

    [1] => Array
        (
            [idProduto] => 2
            [tipo] => mp
            [modelo] => F540 2 BAN.PNEU.80X100 A VISTA BOLETO PAGSEGURO
            [bandejas] => 2
            [peso] => 190
            [prensagem] => 300
            [precoUnitario] => 7500
            [comprimento] => 70
            [largura] => 100
            [cabo] => 6
            [ligacao] => b
            [potencia] => 7500
            [cosumo] => 3
            [corrente] => 35
            [disjuntor] => 40
            [descricao] => 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. 
www.topuhrens.de




            [estoque] => 8
            [freteGratis] => n
            [bloqueado] => n
        )

I'm trying this way

  var res1 =  Array(); 
  res1 = <?php echo json_encode($produto); ?>;
  document.write(res1[0]["ProdutosidProduto"])

  var res2 =  Array();
  res2 = <?php echo json_encode($produtos); ?>;
  document.write(res2[0]["idProduto"])  

no JS , res2 is perfect. But res1 exits undefined

Where am I going wrong?

Note: Output PRINT_R () of the search output in the database: Here I put only 2 exits to not get big!

Array
(
    [0] => Produtos Object
        (
            [idProduto:Produtos:private] => 1
            [tipo:Produtos:private] => mp
            [modelo:Produtos:private] => F540 2 BAN.PNEU. 100 X 60
            [bandejas:Produtos:private] => 2
            [peso:Produtos:private] => 0
            [prensagem:Produtos:private] => 0
            [precoUnitario:Produtos:private] => 6500
            [comprimento:Produtos:private] => 100
            [largura:Produtos:private] => 60
            [cabo:Produtos:private] => 0
            [ligacao:Produtos:private] => n
            [potencia:Produtos:private] => 0
            [consumo:Produtos:private] => 0
            [corrente:Produtos:private] => 0
            [disjuntor:Produtos:private] => 0
            [descricao:Produtos:private] => 
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. 
            [estoque:Produtos:private] => 7
            [freteGratis:Produtos:private] => s
            [bloqueado:Produtos:private] => n
        )

    [1] => Produtos Object
        (
            [idProduto:Produtos:private] => 2
            [tipo:Produtos:private] => mp
            [modelo:Produtos:private] => F540 2 BAN.PNEU.80X100 A VISTA BOLETO PAGSEGURO
            [bandejas:Produtos:private] => 2
            [peso:Produtos:private] => 190
            [prensagem:Produtos:private] => 300
            [precoUnitario:Produtos:private] => 7500
            [comprimento:Produtos:private] => 70
            [largura:Produtos:private] => 100
            [cabo:Produtos:private] => 6
            [ligacao:Produtos:private] => b
            [potencia:Produtos:private] => 7500
            [consumo:Produtos:private] => 3
            [corrente:Produtos:private] => 35
            [disjuntor:Produtos:private] => 40
            [descricao:Produtos:private] => 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. 
www.topuhrens.de




            [estoque:Produtos:private] => 8
            [freteGratis:Produtos:private] => n
            [bloqueado:Produtos:private] => n
        )

Here is the generation of the Array of Objects:

  $todos = $produtosDao->pesquisaProdutos(); 

  foreach ($todos as $cada):

     $produto[] = (array) $cada; //cada um $cada é um objeto

  endforeach;
    
asked by anonymous 01.12.2018 / 20:49

1 answer

1

This documentation informs:

  

If the source data contains control characters, the clause   FOR JSON will do the encoding on the JSON output in \u<code> format,   as shown in the following table.

In your case, something like this is occurring and when coding for JSON, it is substituting \u0000 .

You can delete these characters by doing a replace in JSON:

res1 = <?php echo str_replace("\u0000", "", json_encode($produto)); ?>;

This question in SOen has other information about \u0000 .

    
02.12.2018 / 00:51