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版(1)
Oct 09 PHP
PHP5 安装方法
Jan 15 PHP
php中全局变量global的使用演示代码
May 18 PHP
PHP源代码数组统计count分析
Aug 02 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
浅析PHP Socket技术
Aug 02 PHP
php实现递归的三种基本方式
Jul 04 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
PHP登录(ajax提交数据和后台校验)实例分享
Dec 29 PHP
Laravel中错误与异常处理的用法示例
Sep 16 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 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 cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
python逐行读取文件内容的三种方法
2014/01/20 Python
Python中的lstrip()方法使用简介
2015/05/19 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
python datetime中strptime用法详解
2019/08/29 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
乌鸦喝水教学反思
2014/02/07 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
PHP实现两种排课方式
2021/06/26 PHP