【问题标题】:Converting a string (in array format) to an array in PHP (Laravel)在PHP(Laravel)中将字符串(数组格式)转换为数组
【发布时间】:2020-06-05 10:45:27
【问题描述】:

在 PHP (Laravel) 中,有没有一种简单的方法可以将字符串(已经像数组一样格式化)转换为数组类型?

示例: $string = "['user_id' => 123, 'merchant_id' => 456]"

我想做这样的事情:$userId = ((array) $string)['user_id'];

我当然可以解析这个字符串并以这种方式获取值,但我想知道是否有更优雅的方式(或者是否已经存在一个函数)。

【问题讨论】:

  • php.net/eval - 但要注意:这里是龙。
  • @charliekelly 你从哪里得到字符串?
  • @TorbjörnStabo 从外部提供商那里,我收到了这种格式的数据。
  • 从外部提供者那里接收这样的输出确实是错误的(在他们这边)。这就是我们为 API 提供 JSON 或 XML 输出的原因。
  • +1 在上面,这可能是非常不安全的。你可能想看看runkit_sandbox()

标签: php arrays laravel


【解决方案1】:

一种方法(可能不是最好的,但它有效):将字符串作为代码写入文件并包含该文件。

$string = "['user_id' => 123, 'merchant_id' => 456]";

file_put_contents('test','<?php $my_array='.$string.';?>');

require('test');

echo print_r($my_array,true);

结果:

Array
(
    [user_id] => 123
    [merchant_id] => 456
)

从那里你有一个可以使用的普通数组。

【讨论】:

    猜你喜欢
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    相关资源
    最近更新 更多