Tenho a seguinte situação.
Recebo vários JSONs podendo ou não ser multidimensional, preciso atualizar uma determinada chave deste JSON, o problema é que algumas chaves podem ser duplicadas, bem como seus respectivos valores. Como estou tentando criar uma função genérica para navegar em qualquer JSON e modificar a chave em si, com estas duplicidades de chaves, estou tendo dificuldades em dizer ao código qual é chave que devo alterar.
$json = json_decode($json_string, true);
Função que criei até aqui
/**
* Encontra a chave correspondente dentro do JSON
*
* @param array $jsonArray - JSON a ser verificado
* @param string $keyFather - chave de entrada
* @param string $keyUpdate - chave que modificar
* @param string $valueUpdate - novo valor da chave
* @return string
*
*/
public static function searchKeyJson(array $jsonArray, string $keyFather, string $keyUpdate = null, $valueUpdate = null)
{
foreach ($jsonArray as $key => $value) {
if ($key == $keyFather && $keyUpdate == null) {
$jsonArray[$key] = $valueUpdate;
return $jsonArray;
}
if ($key == $keyFather && $keyUpdate != null) {
$jsonArray[$keyFather][$keyUpdate] = $valueUpdate;
return $jsonArray;
}
if (is_array($value)) {
if (($result = self::searchKeyJson($value, $keyFather, $keyUpdate, $valueUpdate)) !== false) {
if ($keyUpdate == null) {
return $result;
} else {
return $result;
}
}
}
}
return false;
}
Até modifico o valor, mais no final para salvar, ele não monta o JSON como original, ele caba ignorando a chave inicial no JSON de exmeplo "CREDITOR": {}
Retorno da função (notem que esta forma do padrão da original)
=> [
"TAX" => [
"TAC" => 0.7,
],
"ENABLE" => "true",
"PRODUCTION" => [
"email" => "teste",
"senha" => "12457895",
"BASE_URL" => "https://domino.com",
],
"HOMOLOGATION" => [
"email" => "email@dominio.com",
"senha" => "12457895",
"BASE_URL" => "https://domino.com",
],
"TARGET_VALUES" => 5000000,
]
Se eu percorrer o array e tentar modificar a chave em questão, ele muda todas as as chaves que tiverem no JSON porque tem duplicidade.
Como posso resolver isto com uma função global que sirva para qualquer padrão de JSON que eu tiver?
Fala pessoal tudo bem
Estou criando um site para o cliente e ele me pediu para colocar um tradutor ao clicar nas bandeiras
porem eu nao queria fazer uma pagina para cada traduçao eu queria fazer tipo usando o google Translate
alguem tem alguma sugetao de como posso fazer ou um exemplo
grato
Bom dia pessoal tudo bem?
Então, estou trabalhando em um site em php e preciso usar a api do facebook para obter o feed do instagram, porém a chave token é um conteúdo muito sensível, então decidi fazer em php para ela não ficar disponível do lado do cliente. Alguém sabe me dizer se é possível fazer isso? Porque eu pesquisando no google só achei maneiras de fazer em javascript.
Boa noite, tenho pesquisado porém não encontrei, então vamos lá.
tenho uma lista de itens ( documentos ) cadastrados no banco de dados e os seus respectivos arquivos em uma pasta, se eu preciso de um deles clico e faço o download deste, no entanto como fazer para fazer o download de vários ao selecionar com checkbox os que eu quero ?
desculpem por não postar nenhum código, mas é que não estou sabendo como fazer os downloads de vários.
Qual o procedimento correto ?
Estou com duas tabelas onde uma eu somo o km de cada carro, e outra que eu somo a quantidade de litragem abastcido, porem tem carro que não abastece na garagem e na hora d eeu mostrar a media por carro abastecido ele acaba entrando no somatório e é onde da o erro Warning: Division by zero in, como faço pra fazer essa soma e excluir os carro que não estao com o abastecimento.Abaido deixo as tabelas
Esse soma o KM , todos os carro tem KM
$soma4 = $conectar->query("SELECT SUM(tkm) AS total FROM cad_km where carro='$carro'");
$count4 = $soma4->fetchColumn();
Esse soma a Litragem, porem o tem carro que não abastece,
$soma3 = $conectar->query("SELECT round(SUM(litros),0) AS total FROM cad_abastec where dtabastec BETWEEN '$data1' AND '$data2' and carro='$carro'");
$count3 = $soma3->fetchColumn();