Cet article vous explique comment utiliser la fonction récursive personnalisée de PHP pour convertir des tableaux en JSON. Le contenu est très bon. Les amis dans le besoin peuvent s'y référer.
L'exemple de cet article décrit la fonction récursive personnalisée PHP pour implémenter le tableau en fonction JSON. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Question :
En raison de la nécessité de fournir des interfaces avec d'autres entreprises dans un projet récent, nourrissez-les avec des données json codées en GBK, mais un problème est que la fonction de cryptage json_encode
en PHP ne prend en charge que l'encodage utf-8, ce qui est embarrassant. Nos données sont codées en GBK, et le format de données requis par le récepteur est également codé en GBK. Au début, nous avons pensé à convertir les données en codage utf-8, puis à utiliser la fonction json_encode
. tronqué. La méthode finale utilisée consistait donc à chiffrer manuellement les données.
Mise en œuvre :
Pour réaliser cette fonction, le plus important est d'observer les caractéristiques des données json Au début, le LZ. le résumé n'était pas en place et il n'a pas pu l'être complètement Pour implémenter la fonction de json_encode
, je me référerai plus tard aux informations sur Internet pour implémenter cette fonction (c'est une fonction récursive) :
function newArrayToJson($array) { if(!is_array($array)) { return ''; } $func = __FUNCTION__; //关键判断是不是关联数组,以此来决定是否需要json加密key和使用[] $associative = (array_keys($array) !== range(0, count($array) - 1)) ? true : false; if($associative && !empty($array)) { $construct = array(); foreach($array as $key => $value) { $key = '"'.$key.'"'; if(is_array($value)) { $value = $func($value); } elseif(!is_numeric($value)) { $value = '"'.$value.'"'; } $construct[] = "$key:$value"; } $result = "{".implode(",",$construct)."}"; } else { $construct = array(); foreach($array as $value) { if(is_array($value)) { $value = $func($value); } else if(!is_numeric($value)) { $value = '"'.$value.'"'; } $construct[] = $value; } $result = "[".implode(",", $construct)."]"; } return $result; }
//测试: $arr=array('1'=>'www.jb51.net','2'=>'www.baidu.com','3'=>'www.sina.com.cn','4'=>'脚本之家'); echo newArrayToJson($arr); /* 运行结果: {"1":"www.jb51.net","2":"www.baidu.com","3":"www.sina.com.cn","4":"脚本之家"} */
Recommandations associées :
Introduction et utilisation de 10 fonctions de chaîne courantes dans PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!