改写函数实现PHP二维/三维数组转字符串_php技巧

由于工作需要,自己在手册给定的示例函数基础上改写出了这样一个函数,代码如下:

复制代码 代码如下:

//将多维数组中所有的数值转换成字符串————》最多支持三维数组
function implodex( $glue, $array, $separator='' ) {
if ( ! is_array( $array ) ) return $array;
$string = array();

$count = 0;
foreach ( $array as $key => $val ) {
if ( is_array( $val ) )
$val = implode( $glue, $val );

if($count == 0){
$string[] = "{$val}";
}else{
$string[] = "{$glue}{$val}";
}
}

if(empty($separator))$separator = $glue;

return implode( $separator, $string );
}

时间: 2024-09-20 06:22:29

改写函数实现PHP二维/三维数组转字符串_php技巧的相关文章

php通过array_merge()函数合并关联和非关联数组的方法_php技巧

本文实例讲述了php通过array_merge()函数合并关联和非关联数组的方法.分享给大家供大家参考.具体分析如下: array_merge()是一个用于合并数组的php函数,后一个数组追加到前一个的结束位置并返回合并后的结果数组. <?php $beginning = 'foo'; $end = array(1 => 'bar'); $result = array_merge((array)$beginning, (array)$end); print_r($result); ?>

使用PHP生成二维码的方法汇总_php技巧

随着科技的进步,二维码应用领域越来越广泛,本站之前已有文章介绍通过使用jQuery插件来生成二维码,今天我给大家分享下如何使用PHP生成二维码,以及如何生成中间带LOGO图像的二维码. 利用Google API生成二维码 Google提供了较为完善的二维码生成接口,调用API接口很简单,以下是调用代码: $urlToEncode="http://www.jb51.net"; generateQRfromGoogle($urlToEncode); /** * google api 二维码

C++技巧之二维动态数组类模板

C++提供了许多强大的机制来实现代码的高度复用.来使我们使用我们自已的类就像使用内置类型那样方便快捷.比如模板,运算符重载等等.模板好比如是一个大批量生产函数和类的工厂,使我们不用再去关心与数据类型相关的繁琐编程细节,把我们精力留给那些真正值得我们去认真思考的地方.而运算符重载则使我们的程序更直观更简洁,这不仅使我们更容易读懂我们的程序,而且使我们能以一种更为流畅的方式来表达我们的想法.就像上篇文章说到的,如果我们把动态分配的二维数组用类模板实现,并重载相应的操作符,我们就能十分方便的使用我们自

c语言中向二维字符数组中写入符号*

问题描述 c语言中向二维字符数组中写入符号* 声明一个二维字符数组char str[][]: 通过循环嵌套向里面写入符号 * 怎么实现?求前辈指教. 解决方案 for (int i = 0; i < 100; i++) { arr[i / 10][u % 10] = ' '; } for (i =0; i < 10; i++) { arr[3][i] = '*'; arr[4][i] = '*'; arr[i][3] = '*'; arr[i][4] = '*'; } 解决方案二: 只要一行

源代码-【二维字符数组】从键盘输入若干英文单词,单词最大长度不超过 15 个字母,把单词按照长度从大到小排序

问题描述 [二维字符数组]从键盘输入若干英文单词,单词最大长度不超过 15 个字母,把单词按照长度从大到小排序 用C语言来写,还没有学到指针,所以不要指针的写法,求大神给个源代码,我自己已经想了3个小时了还没有写出来. 解决方案 不用指针的话,没有办法动态分配内存,我们只能做一个假设,那就是键盘输入的单词不超过n(比如n=100,可以视作无限大) 至于排序,可以用冒泡都可以. 解决方案二: #include<string.h> #include<stdio.h> void main

visual studio-vs2013调试中,如何通过指针监视二维动态数组的值?

问题描述 vs2013调试中,如何通过指针监视二维动态数组的值? int **p = new int *[row]; for (i = 0; i < row; i++) p[i] = new int[column]; 比如说我用上面语句创建额一个row行column列的数组,调试的时候怎样在监视窗口中,看到整个二维数组的值呢? 如果是一维的,例如int *p=new int[5]: 可以将p,5写到监视名称里,可二维的我就不知道了...求帮助 解决方案 调试状态下,调试->窗口->内存,

c++ 大家帮忙看看这个二维动态数组的声明和引用有什么问题吗

问题描述 c++ 大家帮忙看看这个二维动态数组的声明和引用有什么问题吗 Image::Image(unsigned char **m, int h, int w) { m=new unsigned char *[h]; for (int x=0;x<h;x++) { m[x]=new unsigned char[w]; } } void Image::Read(char* ImageName) { IplImage* img = cvLoadImage(ImageName, CV_LOAD_IM

visual studio-VS 调试时怎么看二维动态数组

问题描述 VS 调试时怎么看二维动态数组 就是VS调试的时候,怎么看二维动态数组的各个元素呀 例如**p,然后内存申请好了, 然后监视窗口里打p,10,展开,只能看到每一行的第一个元素,怎么看所有元素呀 解决方案 每个元素点开,再下一层中查看.最好是关闭编译器的优化,重新编译后调试

学习二维动态数组指针做矩阵运算的方法_C 语言

本文分享了利用二维动态数组指针做矩阵运算的实现代码. 1. 头文件     // juzhen 2.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "stdlib.h" #include "windows.h" #define OK 0 #define NG -1 typedef struct mat { int