首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从由#分隔的字符串中获取字段

从由#分隔的字符串中获取字段
EN

Stack Overflow用户
提问于 2018-01-23 11:29:35
回答 2查看 31关注 0票数 0

我有一个字符串,我希望从中获取值/字段。但是,这些值是#分隔的。

另外,从一个副本到下一个副本是逗号分隔的。

如下所示;

代码语言:javascript
复制
$transaction = "
[2018-01-10 12:50:07.822#SAMUEL#TITUS],
[20120605152613#KEN#NAUGH],
[20120705152645#JOHHY#BRAVO]";

我需要循环这个字符串,获取一个记录的#分隔的值,另一个用逗号分隔的下一个记录。

字段的顺序是[TIME#FIRST_NAME#SECOND_NAME]

我想不出有什么办法能完成这件事。

有没有人?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-23 11:40:04

使用分解将字符串解析为数组

代码语言:javascript
复制
<?php
$transaction = "[2018-01-10 12:50:07.822#SAMUEL#TITUS],[20120605152613#KEN#NAUGH],[20120705152645#JOHHY#BRAVO]";
$parsed = explode(",", $transaction);

foreach($parsed as $val){

    $val = explode("#", $val);
    $first_name = $val[1];
    $last_name = str_replace("]", '', $val[2]);

    echo $first_name." ".$last_name."<br>"; // get firstname & lastname 

}

?>
票数 1
EN

Stack Overflow用户

发布于 2018-01-23 11:38:23

您可以使用explodearray_map使用以下解决方案

代码语言:javascript
复制
$transaction = "
    [2018-01-10 12:50:07.822#SAMUEL#TITUS],
    [20120605152613#KEN#NAUGH],
    [20120705152645#JOHHY#BRAVO]";

//normalize the string and remove the unnecessary chars.
$transaction = str_replace(['[', ']', "\n"], '', $transaction);

//get all the rows as array.
$rows = explode(',', $transaction);

//create the columns in rows.
$row_arr = array_map(function ($row) {
    return explode('#', $row);
}, $rows);

//info of the first row.
echo $row_arr[0][0]; // time
echo $row_arr[0][1]; // firstname
echo $row_arr[0][2]; // lastname

//run through the rows to output.
foreach ($row_arr as $row_item) {
    echo 'Time: '.$row_item[0].', Firstname: '.$row_item[1].', Lastname: '.$row_item[2]."<br>";
}

演示: https://ideone.com/3uYcSw

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48400647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档