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生成html分页列表的代码
Mar 18 PHP
php 删除数组元素
Jan 16 PHP
PHP IPV6正则表达式验证代码
Feb 16 PHP
PHP学习之数组值的操作
Apr 17 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
Feb 05 PHP
PHP编程函数安全篇
Jan 08 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
解析php5配置使用pdo
Jul 03 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
PHP生成图片缩略图类示例
Jan 12 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
php二维数组按某个键值排序的实例讲解
Feb 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
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
js中的this关键字详解
2013/09/25 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
小程序实现密码输入框
2020/11/16 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python+mysql实现简单的web程序
2014/09/11 Python
python 进程的几种创建方式详解
2019/08/29 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
美术教学感言
2014/02/22 职场文书
热情服务标语
2014/10/07 职场文书
万能检讨书2000字
2014/10/17 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
交通安全温馨提示语
2015/07/14 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers