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 相关文章推荐
怎么使 Mysql 数据同步
Oct 09 PHP
php 前一天或后一天的日期
Jun 28 PHP
PHP 危险函数解释 分析
Apr 22 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
解析PHP 5.5 新特性
Jul 02 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
php 强制下载文件实现代码
Oct 28 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
Aug 03 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 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
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
JS定时器实例
2013/04/17 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
小程序如何构建骨架屏
2019/05/29 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
在Python中关于中文编码问题的处理建议
2015/04/08 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
使用Python来开发微信功能
2018/06/13 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
python时间日期操作方法实例小结
2020/02/06 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
python程序如何进行保存
2020/07/03 Python
python线程优先级队列知识点总结
2021/02/28 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
高中体育教学反思
2014/01/24 职场文书
自行车租赁公司创业计划书
2014/01/28 职场文书
感恩的演讲稿
2014/05/06 职场文书
门店业绩提升方案
2014/06/08 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript