一道PHP面试题

查看:75
本文介绍了一道PHP面试题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我们的程序运行过程中用到了一个数组a,数组元素是一个Map/Dictionary。
数组元素的键和值都是字符串类型。在不同的语言中,对应的类型是:
PHP的array, Java的HashMap, C++的std::map, Objective-C的NSDictionary, Swift的Dictionary, Python的dict, JavaScript的object, 等等
示例:
a0="value1"
a0="value2"
a1="valueA"
...
为了方便保存和加载,我们使用了一个基于文本的存储结构,数组元素每行一个:
text="key1=value1;key2=value2nkeyA=valueAn..."

要求:请实现一个保存函数、一个加载函数。
text=store(a);
a=load(text);
这两个函数分别用于把数组保存到一个文本字符串中、把文本字符串中的内容读取为数组。
必须自己手写代码实现保存/加载逻辑,严格按照上述的每行一个、key=value的格式保存。

解决方案

private function store($str){
if(!empty($str)){
    $str = explode(';',$str);
    if(is_array($str) && !empty($str)){
        foreach ($str as $item) {
            list($key,$val) = explode('=',$item);
            $data[$key] = $val;
        }
        return $data;
    }
}

}

private function load($arr){
    if(is_array($arr) && !empty($arr)){
        foreach($arr as $key=>$val){
            $str[]=$key.'='.$val;
        }
        if(!empty($str)){return implode(';',$str);}
    }
}

这篇关于一道PHP面试题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆