php二维数组转换为字符串的多个方法

发布时间:2019-12-13编辑:脚本学堂
php二维数组转换为字符串的多个方法与例子,php将二维关联数组转换成字符串,且可以过滤重复的关键字,利用static关键字和递归的思想去遍历数组,并实现数组转字符串。

php二维数组转换为字符串的方法示例

例1、php二维数组转成字符串:
 

复制代码 代码示例:
function arr2str ($arr)
{
 foreach ($arr as $v)
 {
    $v = join(",",$v); //可以用implode将一维数组转换为用逗号连接的字符串
    $temp[] = $v;
 }
    $t="";
    foreach($temp as $v){
       $t.="'".$v."'".",";
    }
    $t=substr($t,0,-1);
    return $t;
}

例2,php将二维关联数组转换成字符串

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二维数组转字符串

三、PHP多维数组转字符串,php多维数组转一维数组

代码:
 

复制代码 代码示例:
/**
* @method 多维数组转字符串
* @param type $array
* @return type $srting
* @author yanhuixian
*/ 
function arrayToString($arr) { 
if (is_array($arr)){ 
return implode(',', array_map('arrayToString', $arr)); 

return $arr; 

 
/**
* @method 多维数组变成一维数组
* @staticvar array $result_array
* @param type $array
* @return type $array
* @author yanhuixian
*/ 
function multi2array($array) { 
static $result_array = array(); 
foreach ($array as $key => $value) { 
if (is_array($value)) { 
array_multi2array($value); 

else 
$result_array[$key] = $value; 

return $result_array; 
}

四、PHP多维数组转成字符串

PHP函数implode()可以将一维数组转成字符串。

以下为自定义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 );
}