将字符串转换为数组数组[重复]
Posted
技术标签:
【中文标题】将字符串转换为数组数组[重复]【英文标题】:Convert a string to array of array [duplicate] 【发布时间】:2018-11-27 17:38:12 【问题描述】:我今天需要你的帮助来转换一个像这样的字符串(我将它命名为 $data):
"hours":"2018-06-10 11:00":2,"2018-06-12 07:00":5,"2018-06-12 08:00":4,"2018-06-12 09:00":2,"2018-06-13 09:00":1,"2018-06-13 13:00":1,"2018-06-13 23:00":1,"2018-06-15 13:00":1,"2018-06-15 14:00":1,"2018-06-15 15:00":2,"2018-06-18 06:00":5,"2018-06-18 07:00":9,"2018-06-18 08:00":1,"2018-06-18 09:00":1,"2018-06-18 12:00":2,"2018-06-18 13:00":13,"days":"2018-06-10 00:00":2,"2018-06-12 00:00":11,"2018-06-13 00:00":3,"2018-06-15 00:00":4,"2018-06-18 00:00":29,"2018-06-18 07:00":2,"weeks":"2018-06-10 00:00":20,"2018-06-17 00:00":29,"2018-06-18 07:00":2
到这样的事情:
小时(数组) 2018-06-10 11:00 (key) : 2 (value as int) 2018-06-12 7:00 (key) : 5 (value as int) 等等…… 天(数组) 2018-06-10 00:00 (key) : 2 (value as int) 等等…… 周(数组) 2018-06-10 00:00 (key) : 20 (value as int) 等等……我知道有一些 php 函数,例如 str_split 或 explode ,但我真的不知道该怎么做。 我试过做类似的东西:
explode('', $data);
或类似的东西,但我真的不知道从哪里开始,如果我用“:”爆炸,它也会在日期中使用“:”。
如果我忘记输入内容,请告诉我我会编辑问题。
提前致谢
【问题讨论】:
这看起来像 JSON。见php.net/manual/en/function.json-decode.php 3v4l.org/PEDGK 这是 json。您可以使用函数将 json 解码为数组,然后可以相应地操作和制定您需要的数组。 感谢大家,它解决了我的问题。抱歉,不知道它是 JSON !你们中的一个可以将其发布为答案吗? 【参考方案1】:或者你可以试试这个:
$data = '"hours":"2018-06-10 11:00":2,"2018-06-12 07:00":5,"2018-06-12 08:00":4,"2018-06-12 09:00":2,"2018-06-13 09:00":1,"2018-06-13 13:00":1,"2018-06-13 23:00":1,"2018-06-15 13:00":1,"2018-06-15 14:00":1,"2018-06-15 15:00":2,"2018-06-18 06:00":5,"2018-06-18 07:00":9,"2018-06-18 08:00":1,"2018-06-18 09:00":1,"2018-06-18 12:00":2,"2018-06-18 13:00":13,"days":"2018-06-10 00:00":2,"2018-06-12 00:00":11,"2018-06-13 00:00":3,"2018-06-15 00:00":4,"2018-06-18 00:00":29,"2018-06-18 07:00":2,"weeks":"2018-06-10 00:00":20,"2018-06-17 00:00":29,"2018-06-18 07:00":2
';
$dados = json_decode( $data, true );
echo "<pre>";
print_r($dados);
echo "</pre>";
【讨论】:
【参考方案2】:在这里试试这个:
$json = '"hours":
"2018-06-10 11:00":2,"2018-06-12 07:00":5,"2018-06-12 08:00":4,"2018-06-12 09:00":2,"2018-06-13 09:00":1,"2018-06-13 13:00":1,"2018-06-13 23:00":1,"2018-06-15 13:00":1,"2018-06-15 14:00":1,"2018-06-15 15:00":2,"2018-06-18 06:00":5,"2018-06-18 07:00":9,"2018-06-18 08:00":1,"2018-06-18 09:00":1,"2018-06-18 12:00":2,"2018-06-18 13:00":13,
"days":"2018-06-10 00:00":2,"2018-06-12 00:00":11,"2018-06-13 00:00":3,"2018-06-15 00:00":4,"2018-06-18 00:00":29,"2018-06-18 07:00":2,"weeks":"2018-06-10 00:00":20,"2018-06-17 00:00":29,"2018-06-18 07:00":2
';
$toarray = json_decode($json, true);
【讨论】:
您能解释一下为什么之后将其转换为数组吗? 因为它将它作为 stdClass 对象返回 他说他想要一个数组 在手册中有很好的解释 json_decode 的第二个参数的作用。 请看json_decode的第二个参数,它应该用于返回一个数组而不是一个对象。以上是关于将字符串转换为数组数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章