本文实例讲述了php实现将二维关联数组转换成字符串的方法。分享给大家供大家参考,具体如下:
需求
项目中遇到了二维关联数组转字符串的问题,查阅相关资料,写了如下程序,并且能过滤重复的关键字。
举例,php的二维数组如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
$name = array (
"self" => "wangzhengyi" ,
"student" => array (
"chenshan" ,
"xiaolingang"
),
"unkmow" => "chaikun" ,
"teacher" => array (
"huangwei" ,
"fanwenqing"
)
);
|
最后要获得的string格式是:
1
|
wangzhengyi,chenshan,xiaolingang,chaikun,huangwei,fanwenqing
|
思路
方法
利用static关键字和递归的思想去遍历数组
自定义函数代码(php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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 ;
}
|
完整示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<?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 );
?>
|
运行结果:
1
|
wangzhengyi,chenshan,xiaolingang,chaikun,huangwei,fanwenqing
|
希望本文所述对大家PHP程序设计有所帮助。