php实现将二维关联数组转换成字符串的方法详解

2025-05-27 0 25

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 php实现将二维关联数组转换成字符串的方法详解 https://www.kuaiidc.com/72162.html

相关文章

发表评论
暂无评论