本文实例讲述了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程序设计有所帮助。