为了账号安全,请及时绑定邮箱和手机立即绑定

多重爆炸。

多重爆炸。

PHP
炎炎设计 2022-07-22 15:26:01
我有一个来自 excel 的列,其中包含以下示例文本,我想在分隔符中分解它。这是示例'ABC 11.0x17 / 1x4 / 2x4 XYZ''ABC 12.1x18 / 2x4 3x4 XYZ''ABC DEF 12.1x19 / 3x4 4x4 XYZ''ABC DEF GHI A1 13x20 / 3x4 / 4x4 XYZ'我需要用 x 分解它,我只需要第一个 x 之后的数字,即上面的 17、18、19 或 20。我确实喜欢以下内容:$text   = explode('x', $row[6]);echo $text[1]; 它给了我 17 / 1、18 / 2 等等,但在这种情况下我只需要 17 或 18如果有人有好的解决方案,请写在这里。
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

您可以使用preg_match在第一个之后提取数字x:


$strings = array(

    'ABC 11.0x17 / 1x4 2x4 XYZ',

    'ABC 12.1x18 / 2x4 3x4 XYZ',

    'ABC DEF 12.1x19 / 3x4 4x4 XYZ',

    'ABC DEF GHI A1 13x20 / 3x4 4x4 XYZ'

);


foreach ($strings as $str) {

    preg_match('/^[^x]+x(\d+)/', $str, $matches);

    echo $matches[1] . "\n";

}

输出:


17

18

19

20

3v4l.org 上的演示


如果您只想使用explode,只需在爆炸后在空间上爆炸x并取第一个值:


foreach ($strings as $str) {

    $text = explode('x', $str, 2);

    $text = explode(' ', $text[1]);

    echo "$text[0]\n";

}


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信