CSV 解析 +多维数组

发布于 2024-11-17 02:10:23 字数 367 浏览 0 评论 0原文

59516,?O?L?h,27,80,67,13,1,84.6,40,4,1,32632,??,3,5,32640,AES,3,5,32210,\
???i?Z??,1,1.2,32263,?,1,1.2,3?T,1,1.2,32104,,1,1,40012,??,1,0.8

我如何分解/列出这一行并提取包含五个字符数字的任何字段以及紧邻其前面的字段?

$data['59516']['i'] 将包含一个数组

(32632=>1, 32640=>5, 32210=>5, 32263=>1.2,32104=>2, 40012=>1)
59516,?O?L?h,27,80,67,13,1,84.6,40,4,1,32632,??,3,5,32640,AES,3,5,32210,\
???i?Z??,1,1.2,32263,?,1,1.2,3?T,1,1.2,32104,,1,1,40012,??,1,0.8

How would I explode/list this line and pull any field that contains a five-character number and the field immediately preceding it?

i.e. $data['59516']['i'] would contain an array with

(32632=>1, 32640=>5, 32210=>5, 32263=>1.2,32104=>2, 40012=>1)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寂寞陪衬 2024-11-24 02:10:23

不确定我完全理解你的问题,但听起来你想要类似的东西:

$items = str_getcsv($commaSeparatedList);
for ($i = 0; $i < count($items); $i++) {
    if (strlen($items[$i]) == 5 && is_numeric($items[$i])) {
            var_dump($items[$i]); // current match
        if (isset($items[$i-1])) {
            var_dump($items[$i-1]); // item and one before it
        }
    }
 }

Not sure i fully understand your question, but it sounds like you want something like:

$items = str_getcsv($commaSeparatedList);
for ($i = 0; $i < count($items); $i++) {
    if (strlen($items[$i]) == 5 && is_numeric($items[$i])) {
            var_dump($items[$i]); // current match
        if (isset($items[$i-1])) {
            var_dump($items[$i-1]); // item and one before it
        }
    }
 }
走过海棠暮 2024-11-24 02:10:23

(?<=,)(\d+),(\d{5})

$matches[1] 具有值,而 $matches[ 2] 有你的钥匙。

(?<=,)(\d+),(\d{5})

The $matches[1] has the value and the $matches[2] has your key.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文