php实现将二维关联数组转换成字符串的方法详解


Posted in PHP onJuly 31, 2017

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
PHP Token(令牌)设计
Mar 15 PHP
php URL跳转代码 减少外链
Jun 25 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
PHP网络操作函数汇总
May 18 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
thinkphp5修改view到根目录实例方法
Jul 02 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
微信接口生成带参数的二维码
Jul 31 #PHP
PHP判断一个数组是另一个数组子集的方法详解
Jul 31 #PHP
PHP中TP5 上传文件的实例详解
Jul 31 #PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 #PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 #PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 #PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 #PHP
You might like
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
ThinkPHP模型详解
2015/07/27 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
phpwind放自动注册方法
2006/12/02 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
javascript中call()、apply()的区别
2019/03/21 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
详解Python的Django框架中的中间件
2015/07/24 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
Python 打印中文字符的三种方法
2018/08/14 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
解决python运行启动报错问题
2020/06/01 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
园林技术个人的自我评价
2014/01/08 职场文书
职工代表大会主持词
2014/04/01 职场文书
小学生春游活动方案
2014/08/20 职场文书
大学军训决心书
2015/02/05 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python