作者:琉忆 阅读 180 次

请实现一个函数,输入一段文本,把文本解析到一个数组中,数组每行元素的key通过输入参数指定。

请实现一个函数,输入一段文本,把文本解析到一个数组中,数组每行元素的key通过输入参数指定。

函数原型:function ExplodeLines($text, $columnNames)

例如,输入:

$text = "
Apple,20,red
Pear,10,yellow
";
$columnNames = array('Fruit', 'Number', 'Color')

 

函数返回:

array(
    array('Fruit'=>'Apple', 'Number'=>'20', 'Color'=>'red'),
    array('Fruit'=>'Pear', 'Number'=>'10', 'Color'=>'yellow'),
)

 

参考答案:这道题主要考的是字符串分割,然后把分割好的字符串放入数组中,对于输入的字符串,首先按照换行符进行分割,对于分割后的每个字符串,可以按照逗号进行分割。实现代码如下:

<?php
    function ExplodeLines($text, $columnNames){
        // 把输入的字符串以换行符分割
        $arr = explode("\n", $text);
    $result = array();
    foreach($arr as $key=>$val){
        if($val!=""){
            $result[] = array_combine($columnNames, explode(",", $val));
        }
    }
    return $result;
    }
 
    $text= "Apple,20,red
Pear,10,yellow";
    $columnNames = array('Fruit', 'Number', 'Color');
    $result = ExplodeLines($text,$columnNames);
    print_r($result);
?>

程序的运行结果为

Array
(
    [0] => Array
        (
            [Fruit] => Apple
            [Number] => 20
            [Color] => red
        )
 
    [1] => Array
        (
            [Fruit] => Pear
            [Number] => 10
            [Color] => yellow
        )
 
)

 


关注我们,获取更多面试资料
公众号:琉忆编程库
小程序:琉忆编程库
微博:琉忆
QQ邮箱:330168885
QQ:330168885
琉忆寄语
你好,是我琉忆。很荣幸你能浏览我的文章,希望我的文章都能帮助到你。我的新书《PHP面试笔试宝典》已经上线,希望可以多多支持。另外想和我交朋友或交流开发技巧、编程学习都随时欢迎。具体联系方式有:公众号留言(琉忆编程库),邮箱:330168885@qq.com。
赞赏一番
琉忆微信收款
琉忆支付宝收款