这里有新鲜出炉的 PHP 教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 php 实现将二维关联数组转换成字符串的方法, 涉及 php 数组递归遍历、转换、去重、拼接等相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 php 实现将二维关联数组转换成字符串的方法。分享给大家供大家参考,具体如下:
需求
项目中遇到了二维关联数组转字符串的问题,查阅相关资料,写了如下程序,并且能过滤重复的关键字。
举例,php 的二维数组如下:
- $name = array(
- "self" => "wangzhengyi",
- "student" => array(
- "chenshan",
- "xiaolingang"
- ),
- "unkmow" => "chaikun",
- "teacher" => array(
- "huangwei",
- "fanwenqing"
- )
- );
最后要获得的 string 格式是:
- wangzhengyi,chenshan,xiaolingang,chaikun,huangwei,fanwenqing
思路
方法
利用 static 关键字和递归的思想去遍历数组
自定义函数代码 (php)
- function arrToStr($array) {
- // 定义存储所有字符串的数组
- static $r_arr = array();
- if (is_array($array)) {
- foreach($array as $key = >$value) {
- if (is_array($value)) {
- // 递归遍历
- arrToStr($value);
- } else {
- $r_arr[] = $value;
- }
- }
- } else if (is_string($array)) {
- $r_arr[] = $array;
- }
- //数组去重
- $r_arr = array_unique($r_arr);
- $string = implode(",", $r_arr);
- return $string;
- }
完整示例代码:
- <?php
- $name = array(
- "self" => "wangzhengyi",
- "student" => array(
- "chenshan",
- "xiaolingang"
- ),
- "unkmow" => "chaikun",
- "teacher" => array(
- "huangwei",
- "fanwenqing"
- )
- );
- function arrToStr ($array)
- {
- // 定义存储所有字符串的数组
- static $r_arr = array();
- if (is_array($array)) {
- foreach ($array as $key => $value) {
- if (is_array($value)) {
- // 递归遍历
- arrToStr($value);
- } else {
- $r_arr[] = $value;
- }
- }
- } else if (is_string($array)) {
- $r_arr[] = $array;
- }
- //数组去重
- $r_arr = array_unique($r_arr);
- $string = implode(",", $r_arr);
- return $string;
- }
- echo arrToStr($name);
- ?>
运行结果:
- wangzhengyi,chenshan,xiaolingang,chaikun,huangwei,fanwenqing
希望本文所述对大家 PHP 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0818/344406.html