yaoruisheng 发表于 2019-1-25 17:04:19

问一个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:49


Jan 发表于 2019-1-25 17:05

递归
怎么搞?

yaoruisheng 发表于 2019-1-25 17:06:10

不知道深度只能递归,好麻烦

wwww961h 发表于 2019-1-25 17:05:00

[*]/**
[*] * 数组扁平化
[*] * @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:06:23


hdown 发表于 2019-1-25 17:25

完善了一下@Jan 的思路
谢谢。

yaoruisheng 发表于 2019-1-25 17:25:52

function functionName($strs) {   if (is_array($strs)) {         // code         // $strs = .....;          functionName($strs);   }   return $strs; }

admin86 发表于 2019-1-25 17:50:02

爪机,排版乱了

admin86 发表于 2019-1-25 17:25:00

function functionName($strs) {   if (is_array($strs))functionName($strs);   return $strs; }
lol.gif
递归最讨厌了,一不小心就成死循环了。
页: [1]
查看完整版本: 问一个php数组的问题。。。