字符串转数组(php版)

Posted 一条理想的咸鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串转数组(php版)相关的知识,希望对你有一定的参考价值。

思路:

1.判断当前传来的值是否为数组

2.若不是现将传来的值转换为字符串类型

3.判断当前值是否为空

4.若不为空,采用正则进行匹配,如下图

preg_match(‘/^{.*?}$/‘, $string) || preg_match(‘/^[.*?]$/‘, $string) || preg_match(‘/^a:.*?(})$/‘, $string)

5.若正则无法匹配,则采用查找首次字符串出现的位置进行拆分分割

strpos($string, $delimiter) >= 1

 

具体代码示例如下

    /**
     * 字符串、数组转换为格式化的数组
     * @param string|array $data      原始字符串,可以为数组、 json字符串、 序列化字符串
     * @param string       $delimiter 字符串分隔符,默认为英文逗号
     * @return array
     */
    function cm_unserialize($data, string $delimiter = ‘,‘): array
    {

        // 数组原样返回
        if (is_array($data)) {
            return $data;
        }
        // 字符串处理
        $string = (string)$data;
        if (empty($string)) {
            $result = [];
        } else if (preg_match(‘/^{.*?}$/‘, $string) || preg_match(‘/^[.*?]$/‘, $string)) {
            $result = json_decode($string, true);
        } else if (preg_match(‘/^a:.*?(})$/‘, $string)) {
            $result = unserialize($string, null);
        } else if (strpos($string, $delimiter) >= 1) {
            $result = explode($delimiter, $string);
        } else {
            $result = [];
        }

        if (!is_array($result) || count($result) < 1) {
            return [];
        }
        return $result;
    }

 

以上是关于字符串转数组(php版)的主要内容,如果未能解决你的问题,请参考以下文章

php数组转php代码,php数组转php字符串

Python中字符串与数组的转换方法

php字符串转数组

怎么把json字符串转成数组对象

PHP 数组转字符串,字符串转数组

PHP 数组转字符串,与字符串转数组