为了账号安全,请及时绑定邮箱和手机立即绑定

一道PHP面试题

一道PHP面试题

DIEA 2018-08-03 09:41:30
我们的程序运行过程中用到了一个数组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”的格式保存。
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

为啥题目我都没有读懂呢,是说数组a = ['a0="value1"', 'a0="value2"', 'a1="valueA"'],然后store(a)函数返回'a0=value1;a0=value2;a1=valueA'。反之load再得到数组a。是这样吗,要是这样的话,就和读取url参数一样了。

好吧,在js那就是这样了吧

function store(a) {

    var str = ''

    str = a.toString().replace(/,/g, ';').replace(/"/g, '')

    return str;

function load(str) {

    var a = str.split(';')

    return a

}

var a = ["a0='value0'", "a1='value1'", "a2='value2'"]

var str = store(a)

console.log(str) //a0=value1;a0=value2;a1=valueA

var b = load(str)

console.log(b) //["a0=value1", "a0=value2", "a1=valueA"]


查看完整回答
反对 回复 2018-08-05
?
莫回无

TA贡献1865条经验 获得超7个赞

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);}

    }

}


查看完整回答
反对 回复 2018-08-05
  • 2 回答
  • 0 关注
  • 1027 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信