1
NOTE : This is for a PHP script !

所以我一直在研究一个程序,但现在我被卡住了,因为我无法正确拆分数据。

我有一个像这样的数字列表:

50.0.1 581 50.0.2 545 50.0.3 541 50.0.4 18 50.0.5 2 50.0.6 33 50.0.7 1 [...]

我已将该信息添加到 ARRAY 或 JSON 格式(首选 JSON)中。

主要数据看起来像这样(我们分组):50.0.1 581 所以基本上我必须将 50.0.1 从 581 中拆分出来,将其添加到 JSON/ARRAY,然后移动到下一个组,在我们的例子中是 50.0.2 545。 (等等)

示例 JSON:

{"result": {
    "50.0.1": "581",
    "50.0.2": "545"
}}

注意:第一个值将始终具有相同的格式:[0-9]{2}.[0-9].[0-9](例如:50.0.1)

但是,第二个值可以是 1 到 4 位长:[0-9]{1,4}。

如果我没有说清楚,我很抱歉——这很难解释。如果需要,将添加更多示例!

Thank you very much !
4

3 回答 3

2

简单地在空间上爆炸,例如

$arr = explode(' ', $your_string);

然后使用每对元素构建一个新数组:

$newarr = array();
for ($i = 0; $i < count($arr); $i += 2) {  // note the += 2
    $newarr[$arr[$i]] = $arr[$i+1];
}
echo json_encode($newarr);

请注意,如果这些“关键”值中的任何一个重复,这可能会破坏事物。

于 2012-11-24T14:57:22.093 回答
0

我自己的工作解决方案: /([.\d] )\t(\d )/ 。将输出 3 个数组。简单地将第二和第三结合起来,我得到了我想要的。

于 2012-11-24T17:28:53.073 回答
0

另一种方法是使用array_chunk()after explode(),然后在 JS 中作为item[0]item[1]为每一对访问值。

于 2012-11-24T18:10:12.743 回答