【问题标题】:Transform string from associative array into multidimensional array将字符串从关联数组转换为多维数组
【发布时间】:2018-01-14 20:08:05
【问题描述】:

我将图像链接存储到数据库中,并用, 分隔它们,但我想将此字符串转换为数组,但不知道该怎么做。

所以我的数组看起来像这样:

$array = array(
"name" => "Daniel",
"urls" => "http:/localhost/img/first.png,http://localhost/img/second.png"
);

所以我希望它采用以下形式:

$array2 = array(
"name" => "Daniel",
"urls" => array("http:/localhost/img/first.png",
                "http://localhost/img/second.png" )
);

【问题讨论】:

标签: php arrays string multidimensional-array


【解决方案1】:

我已经有一段时间没有使用 PHP 了,但是对于那个简单的用例,我会使用 explode

$array['urls'] = explode(',', $array['urls']);

不确定我是否正确解释了您的问题?

【讨论】:

  • Explode 将适用于他的情况。尽管他确实应该将多个图像存储在由第一个表的 id 链接的第二个表中。用逗号将任何内容存储在单个字段中可能会导致以后出现许多灵活性和维护问题。
  • 同意。但你必须从一些事情开始。
  • 如果 url 包含逗号,用逗号分割可能会有问题。
【解决方案2】:

您可以使用array_walk_recursive,如下例所示。

function url(&$v,$k)
{
    if($k=='urls') {
    $v = explode(",",$v);
    }
}
$array = array(
"name" => "Daniel",
"urls" => "http:/localhost/img/first.png,http://localhost/img/second.png"
);
array_walk_recursive($array,"url");

您可以在PHP Sandbox上查看输出

【讨论】:

    猜你喜欢
    • 2012-06-10
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 2012-11-17
    相关资源
    最近更新 更多