将表示数组数据的格式化字符串转换为数组

问题描述 投票:0回答:1

我有一个数组存储在数据库中,所以首先必须将数组转换为字符串。那么如何将我转成字符串形式的数组返回呢?

这是我拥有的数组,带有 var_dump 和 xdebug:

barang.php:59:string '["warna" => ["merah","hitam","navy"], "ukuran" => ["40","41","42","43", "44"]]' (length=78)

看到是一个字符串,但是里面的格式表示的是一个数组。

php arrays string text-parsing
1个回答
-1
投票

我建议清理数据库并以更好的格式保存数据。我建议使用

json_encode
serialize
对其进行序列化,或者将数据规范化为单独的行并编写自定义代码以从数据库中读取它。

但是如果你必须按原样使用它,你可以在这里使用

eval

<?php

$string = '["warna" => ["merah","hitam","navy"], "ukuran" => ["40","41","42","43", "44"]]';

eval('$foo = ' . $string . ' ;');

var_dump($foo);

输出:

array(2) {
  ["warna"]=>
  array(3) {
    [0]=>
    string(5) "merah"
    [1]=>
    string(5) "hitam"
    [2]=>
    string(4) "navy"
  }
  ["ukuran"]=>
  array(5) {
    [0]=>
    string(2) "40"
    [1]=>
    string(2) "41"
    [2]=>
    string(2) "42"
    [3]=>
    string(2) "43"
    [4]=>
    string(2) "44"
  }
}

3v4l.org 上的示例

请注意,使用

eval
是有风险的,并且绝对确定您使用它的数据正是您所认为的。

© www.soinside.com 2019 - 2024. All rights reserved.