【问题标题】:How can I get the last x characters of a string until I reach a specific character?在到达特定字符之前,如何获取字符串的最后 x 个字符?
【发布时间】:2015-06-29 10:38:54
【问题描述】:

我的问题有点基于此: How can I get the last 7 characters of a PHP string?

我的也差不多。我需要获取字符串的最后 x 个字符并在到达“-”时停止

例如,我有一个预订代码: N-903

我可以像这样得到最后 3 个字符:

$booking_Code = N-903
$booking_Code = substr($booking_Code, -3);

结果将是:

903

但是这个数字会增加,所以我希望看到如下预订代码:

N-1001
N-22520
N-201548

所以代码:

substr($booking_Code, -3);

将变得毫无用处。有没有办法使用“-”作为分隔符?我认为这是正确使用的术语。因为生成的数字总是在连字符“-”之后。任何帮助将不胜感激

【问题讨论】:

  • 你不想在连字符上爆炸吗?

标签: php string


【解决方案1】:

作为替代方案,您也可以将strrchr 与您拥有的substr 结合使用:

$booking_Code = 'N-903';
$booking_Code = substr(strrchr($booking_Code, '-'), 1);
echo $booking_Code; // 903

【讨论】:

  • 我也喜欢这个。如果我的字符串中有多个连字符,这是否适用?例如 N-07-03-903 我需要最后一个连字符后的数字!
  • @AkiraDawson 是的,这就是它的美妙之处,你仍然可以从最后一个 - 中得到最后一个数字。 explode() 也可以解决这个问题,只需使用 end()。它会得到最后一个爆炸的元素,而不是直接指向索引
【解决方案2】:

试试这个

<?php
$tmpArray = explode("-",$mystr);
echo $tmpArray[1];

?>

您可能想参考 php 中的explode 函数。

【讨论】:

  • 我现在感觉自己像个白痴。我怎么没想到!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多