数组特殊字符转换为字符串

时间:2019-08-05 12:11:39

标签: php

我正在创建密码生成器,目前正在处理特殊字符数组,以将其转换为字符串。我将特殊字符保存在cvs文件中,使用它作为数组来根据密码中应包含的特殊字符进行切片,然后将它们设置为字符串并由数字和字母连接。

    $list = './SpecialChar.csv';
    $e = array_map('str_getcsv', file($list));

    //$nRange telling how many characters should be slice
    $nRange = $length-($numb*2)-$specialChar;

    shuffle($e);
    $s = array_slice($e,0,$nRange);
    $sString = implode(" ",$s); //does not work
    $sString = htmlentities(implode(" ",$s)); //does not work

1 个答案:

答案 0 :(得分:0)

implode仅接受字符串,因此,如果您尝试将数组转换为字符串,则无论数组中的内容是什么,都将返回“ string(5)“ Array”“

var_dump((string)["T","E","S","T"]);

因此,当您尝试破坏多维数组时,您会得到类似的东西

    $test = [["-"], ["*"]];
var_dump(implode(" ", $test)); //THIS WILL GIVE YOU Notice: Array to string conversion when using implode , but it will return string(11) "Array Array"

如果尺寸只有两个,则可以使用array_map

$test = [["-"], ["*"]];
var_dump(implode(" ", array_map(function ($row) {
                        return is_array($row)?implode($row):$row;
                    }, $test))); //returns string(3) "- *"
相关问题