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之第一天
Oct 09 PHP
php array的学习笔记
May 10 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
May 10 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
PHP身份证校验码计算方法
Aug 10 PHP
浅谈php中urlencode与rawurlencode的区别
Sep 05 PHP
php中文字符串截取多种方法汇总
Oct 06 PHP
Nginx环境下PHP flush失效的解决方法
Oct 19 PHP
PHP设置images目录不充许http访问的方法
Nov 01 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
PHP反射学习入门示例
Jun 14 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
基于mysql的论坛(5)
2006/10/09 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
Javascript &amp; DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
JS实现针对给定时间的倒计时功能示例
2017/04/11 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python制作Windows系统服务
2017/03/25 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
志愿者宣传口号
2014/06/17 职场文书
研修心得体会
2014/09/04 职场文书
入党函调证明材料
2014/12/24 职场文书
学生病假条范文
2015/08/17 职场文书
Minikube搭建Kubernetes集群
2022/03/31 Servers