问一个php数组的问题。。。
本帖最后由 yaoruisheng 于 2019-1-25 19:33 编辑$a => Array
(
=> Array
(
=> 1.txt
)
)
如何将类似上面的数组 转换成 字符串?
数组深度未知,但是转换的结果是最深那层的键值。
我找到一个方法。
while(is_array($a)){
$a=$a;
}
------------------------------
while(is_array($a)){
$a=reset($a);
}
Jan 发表于 2019-1-25 17:05
递归
怎么搞? 不知道深度只能递归,好麻烦 [*]/**
[*] * 数组扁平化
[*] * @param $arr
[*] * @return array
[*] */
[*]function getArrayStr($arr)
[*]{
[*]
[*] // 不是数组直接返回
[*] if (!is_array($arr)) {
[*] return [$arr];
[*] }
[*]
[*] $arr2 = [];
[*] // 是数组就遍历
[*] foreach ($arr as $item) {
[*] if (!is_array($item)) {
[*] $arr2[] = $item;
[*] }else{
[*] $arr2 = array_merge($arr2, getArrayStr($item));
[*] }
[*]
[*] }
[*] return $arr2;
[*]}
[*]
[*]
[*]var_dump(getArrayStr([
[*] "外婆",
[*] [
[*] "爷爷",
[*] "奶奶",
[*] [
[*] "大爷",
[*] "大妈",
[*] [
[*] "陌生人1",
[*] "陌生人2",
[*] ]
[*] ]
[*] ]
[*]]));
[*]
[*]
[*]var_dump(getArrayStr([
[*] [
[*] [
[*] [
[*] "你自己",
[*] ]
[*] ]
[*] ]
[*]]));复制代码
完善了一下@Jan 的思路
[*]
[*]# php a.php
[*]array(7) {
[*]=>
[*]string(6) "外婆"
[*]=>
[*]string(6) "爷爷"
[*]=>
[*]string(6) "奶奶"
[*]=>
[*]string(6) "大爷"
[*]=>
[*]string(6) "大妈"
[*]=>
[*]string(10) "陌生人1"
[*]=>
[*]string(10) "陌生人2"
[*]}
[*]array(1) {
[*]=>
[*]string(9) "你自己"
[*]}
[*]复制代码
hdown 发表于 2019-1-25 17:25
完善了一下@Jan 的思路
谢谢。 function functionName($strs) { if (is_array($strs)) { // code // $strs = .....; functionName($strs); } return $strs; } 爪机,排版乱了 function functionName($strs) { if (is_array($strs))functionName($strs); return $strs; }
lol.gif
递归最讨厌了,一不小心就成死循环了。
页:
[1]