资讯专栏INFORMATION COLUMN

PHP 多维数组转换一维数组

lykops / 2011人阅读

摘要:下面是我写的将多维数组转换为一维数组的类方法,转换的一维数组的每个元素包含了相应的值在原有多维数组中的以及维度即深度如果对应的原有元素也是数组,则相应的一维元素的则表示为当然,这个可以改。在格式化输出多维数组的时候比较有效。

下面是我写的将多维数组转换为一维数组的类方法,转换的一维数组的每个元素包含了相应的值在原有多维数组中的key,value以及维度(即深度),如果对应的原有元素也是数组,则相应的一维元素的value则表示为--(当然,这个可以改)。在格式化输出多维数组的时候比较有效。

namespace applibsutils;

class ArrayHelper
{
    public static function re_array($array, $p_node_deepth=0, $sub_node_deepth=0)
    {
        $out = array();
        foreach($array as $k=>$v){
            if(is_array($v)){
                $tmp = array("key"=>$k, "value"=>"--","deepth"=>$p_node_deepth);
                $out[] = $tmp;
                //数组的话,级联调用
                $out = array_merge($out, self::re_array($v, $sub_node_deepth+1, $p_node_deepth+1));
            }else{
                $tmp = array("key"=>$k, "value"=>$v,"deepth"=>$sub_node_deepth);
                $out[] = $tmp;
            }
        }
        return $out;
    }
}

例:

$a = array(
    "code"=>0,
    "detail"=>array("msg"=>"get data success"),
    "func"=>"api"
);
print_r(ArrayHelper::re_array($a));

结果:

Array
(
[0] => Array
    (
        [key] => code
        [value] => 0
        [deepth] => 0
    )

[1] => Array
    (
        [key] => detail
        [value] => --
        [deepth] => 0
    )

[2] => Array
    (
        [key] => msg
        [value] => get data success
        [deepth] => 1
    )

[3] => Array
    (
        [key] => func
        [value] => api
        [deepth] => 0
    )
)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30233.html

相关文章

  • PHP cURL请求中CURLOPT_POSTFIELDS只支持一维数组

    摘要:使用发起请求时,我们会常用方法,具体的请求方式可以参考请求详解这篇文章。但我推荐,为了请求的规范化,应该全部使用对请求的参数进行编码。 使用PHP发起请求时,我们会常用cURL方法,具体的PHP请求方式可以参考 PHP cURL请求详解 这篇文章。 cURL发起POST请求 在使用中,如果你需要发送POST的请求,需要配置CURLOPT_POST和CURLOPT_POSTFIELDS...

    airborne007 评论0 收藏0
  • 多维数组一维数组

    摘要:判断是否是数组判断是否一维数组多维数组变一维数组这里函数接受的数组个数如果太过会出现问题。只是给出正确而不拗口的写法,只要把变成就可以了如果你担心浏览器不支持那就用转一下,会把转换成而不出现作用域提升的问题。 //判断是否是数组 let isArr = (arr) => (arr instanceof Array) //判断是否一维数组 let isTdim = (arr) => a...

    darkbaby123 评论0 收藏0
  • [转]php去除数组中重复数据

    摘要:转自实例脚本之家给数组排重与函数的区别它要求是字符串,而这个可以是数组对象要排重的数组是否保留原来的代码很简单,却非常的实用,有需要的小伙伴可以直接拿去用的。 转自 _php实例_脚本之家 /** * 给数组排重 * 与array_unique函数的区别:它要求val是字符串,而这个可以是数组/对象 * * @pa...

    shery 评论0 收藏0
  • PHP经验总结 - 开发技巧分享

    摘要:这里简单介绍一下方法,中文解释就是将整个文件读入一个字符串,它有个参数这里他们分别表示要读取的文件的名称,另指路径,后面三个参数基本不会用到,甚至第二个参数都很少见,所以重点是确定你要读取文件的路径,是绝对路径。 简述 接触PHP差不多2年,从懵懂到入门,再到追求稳定高效的高阶级学习,我慢慢的积累一些PHP编程经验,我本人记性不好,所以把这些经验记下来,慢慢累积,乐自助人,何乐不为呢?...

    mikasa 评论0 收藏0
  • Numpy数组的索引与切片和变形拼接分裂

    摘要:一一维数组的索引与切片对象的内容可以通过索引或切片来访问和修改,与中的切片操作一样。在指定位置分裂数组本身作为一个参数,分类位置构成的列表作为第二个参数同时也可以对一维数组和多位数组进行操作。 1.概述 今天我们来讲一下Numpy数组的索引与切片,numpy数组的索引与切片和Python中的切片与索引的作用相同,可以快速的取出数据,进行下一步的运用或者查看,但是两种切片还有一些不同的地...

    miracledan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<