PHP - 从API给出的字符串创建数组

时间:2016-09-08 14:51:53

标签: php arrays

我有一个字符串,其中包含从动态API返回的字符串,如下所示:

[[[1473261033000,3.7933],[1473312464000,2.0295],[1473313206000,2.0844],[1473313505000,1.4888],[1473313805000,1.3003],[1473314105000,1.1164]]]

我不能像这样对它做任何事情所以我想将它分成2个数组,一个用于第一个数字,一个用于第二个数字,如下所示:

数组1

  • 1473261033000
  • 1473312464000
  • 1473313206000
  • 1473313505000
  • 1473313805000
  • 1473314105000

ARRAY2

  • 3.7933
  • 2.0295
  • 2.0844
  • 1.4888
  • 1.3003
  • 1.1164

有人会帮我解决这个问题吗?它让我疯狂。

2 个答案:

答案 0 :(得分:5)

首先需要将JSON字符串解码为数组,然后使用array_column提取两个数组。

这将需要PHP> = 5.5,但如果您需要较低版本,那么您应该能够在文档页面上找到该功能的向后兼容版本。

<?php
$str = '[[[1473261033000,3.7933],[1473312464000,2.0295],[1473313206000,2.0844],[1473313505000,1.4888],[1473313805000,1.3003],[1473314105000,1.1164]]]';
$json = json_decode($str, true)[0];

$first = array_column($json, 0);
$second = array_column($json, 1);

print_r($first);
print_r($second);

请参阅https://eval.in/637961了解演示。

答案 1 :(得分:0)

嘛! json_decode()将其转换为数组。它是否对你有用取决于你想要对数据做什么,不是吗?

我想知道为什么要将它拆分为两个数组。是不是更容易将它保持在一个?

<?php
    $val = '[[[1473261033000,3.7933],[1473312464000,2.0295],[1473313206000,2.0844],[1473313505000,1.4888],[1473313805000,1.3003],[1473314105000,1.1164]]]';

    $myData = json_decode($val);

    var_dump($myData);
?>