算法应用场景 - 将一个多维数组拼接成一段字符串

发布于 2022-09-11 18:30:54 字数 684 浏览 14 评论 0

$data = [
    "name" => "hopher",
    "age" => "25",
    "extends" => [
        "mail" => "10000@qq.com",
        "phone" => "10086"
    ]
];

将一个多维数组(示例如上), 现需要将数组中所有的键key和值value, 拼接成一段字符串,输出拼接后字符串的MD5值

具体逻辑细节如下:

  1. 数组中所有的字段和值, 按照 key1=value1;key2=value2...的格式拼接为字符串, 并计算拼接后字符串MD5值。
  2. 要求所有的key为小写, 并且按照字母升序排序
  3. 多维数组则以 . 拼接 key 的值, 例如: $a['abc']['def'] , 则生成 abc.def = test
  4. 例如上述数组,最终生成的字符串为:data.age=25;data.extends.mail=10000@qq.com;data.extends.phone=10086;data.name=hopher;

另外,请说明这个小算法的应用场景是什么? (不限开发语言,麻烦说下应用场景)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉世弥音 2022-09-18 18:30:54

要讲算法的话就是函数循环调用,很多地方会用到类似的操作,比如:获取目录下的所有文件(包括子目录内的文件)。

<?php
$data = [
    "name" => "hopher",
    "age" => "25",
    "extends" => [
        "mail" => "10000@qq.com",
        "phone" => "10086"
    ]
];


function arr2str($data,$tempk){
    $str='';
    ksort($data);
    foreach($data as $key => $val){
        $key = strtolower($key);
        if(is_array($val)){
            $child = arr2str($val,"$tempk.$key");
            $str .= $child;
        }else{
            $str.= "$tempk.$key=$val;";
        }
    }
    return $str;
}

$str = arr2str($data,'data');
echo $str."\r\n".md5($str);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文