• HomePagina Inicial
  • Blog Mis cosillas
  • Portfolio Mis trabajos
  • Acerca deeste blog y su autor
    • Sobre Mi 
    • Oridoki 
  • ContactarFormulario
  • Categorias

    • Blog
      • Control de Versiones
        • GIT
      • Diseño
      • Frameworks
        • CakePHP
        • CodeIgniter
      • JavaScript
        • EXT JS
        • JQuery
      • Magento
      • Maquetación
        • CSS
        • HTML
      • MiniCodes
      • MySQL
      • PHP
      • Proyectos
      • TextMate
      • Varios
      • Wordpress
    • Portfolio

PHP: Array 2 JSON

Posted by Adrià Cidre Categories: Blog, PHP Tags: array2json, json, PHP

Genial función en PHP que transforma un array PHP en una salida tipo Json. Genial para PHP4 que no integraba esta funcionalidad de serie.


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$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
}

Share This Post!

Subscribe to our RSS feed. Tweet this! StumbleUpon Reddit Digg This! Bookmark on Delicious Share on Facebook

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Search our website

  • Inicio
  • Blog
  • Consultor Web
  • Contactar
  • E-Commerce
  • Oridoki
  • Outsourcing
  • Portfolio
  • Sobre Mi
  • Social Media
© Adrià  Cidre Jugo - 2011