如何获得一个字符串数组的键值?

时间:2019-07-22 18:35:53

标签: php arrays string

我有一个看起来像数组的字符串,当我var_dump该变量时,我将其视为字符串。?

我已经完成了对该字符串的编码和解码,使用rtrim和ltrim修剪空白,以便将其转换为数组。 var dump将字符串显示为波纹管。

string(271) "

Array
(
    [0] => Array
        (
            [tmp_name] => F:\xampp\tmp\phpC90B.tmp
            [error] => 0
            [name] => development-km-technologies.jpg
            [type] => image/jpeg
            [size] => 55079
        )

)

" 

需要数组中任何键的值。

1 个答案:

答案 0 :(得分:0)

由于我不记得在哪里找到此代码片段,因此将其发布为Wiki答案。

此代码会将您的字符串数组转换为真实数组。

function print_r_reverse($input)
{
    $output = str_replace(['[', ']'], ["'", "'"], $input);
    $output = preg_replace('/=> (?!Array)(.*)$/m', "=> '$1',", $output);
    $output = preg_replace('/^\s+\)$/m', "),\n", $output);
    $output = rtrim($output, "\n,");
    return eval("return $output;");
}


$in = '
Array
(
    [0] => Array
        (
            [tmp_name] => F:\xampp\tmp\phpC90B.tmp
            [error] => 0
            [name] => development-km-technologies.jpg
            [type] => image/jpeg
            [size] => 55079
        )

)';


$arr = print_r_reverse(trim($in));

它使用eval,所以不要在不安全的字符串上使用它。

https://3v4l.org/7Kvg8