Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17583
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Função que converte valores de um array para json

09-03-2011 20:37

Uma função em PHP para converter os valores de um array para json

<?php function array2json($arr) {     if(function_exists('json_encode')) return json_encode($arr); //Lastest versions of PHP already has this functionality.     $parts = array();     $is_list = false;     //Find out if the given array is a numerical array     $keys = array_keys($arr);     $max_length = count($arr)-1;     if(($keys[0] == 0) and ($keys[$max_length] == $max_length)) {//See if the first key is 0 and last key is length - 1         $is_list = true;         for($i=0; $i<count($keys); $i++) { //See if each key correspondes to its position             if($i != $keys[$i]) { //A key fails at position check.                 $is_list = false; //It is an associative array.                 break;             }         }     }     foreach($arr as $key=>$value) {         if(is_array($value)) { //Custom handling for arrays             if($is_list) $parts[] = array2json($value); /* :RECURSION: */             else $parts[] = '"' . $key . '":' . array2json($value); /* :RECURSION: */         } else {             $str = '';             if(!$is_list) $str = '"' . $key . '":';             //Custom handling for multiple data types             if(is_numeric($value)) $str .= $value; //Numbers             elseif($value === false) $str .= 'false'; //The booleans             elseif($value === true) $str .= 'true';             else $str .= '"' . addslashes($value) . '"'; //All other things             // :TODO: Is there any more datatype we should be in the lookout for? (Object?)             $parts[] = $str;         }     }     $json = implode(',',$parts);     if($is_list) return '[' . $json . ']';//Return numerical JSON     return '{' . $json . '}';//Return associative JSON } $data = array(  'nome'    =>    "Joao",  'idade'    =>    "20 anos" ); $json = array2json($data); echo $json; ?>

Fonte: http://www.bin-co.com/php/scripts/array2json/
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado