【问题标题】:Regex to Add a postfix to each item of a PHP array正则表达式为 PHP 数组的每个项目添加后缀
【发布时间】:2017-07-30 05:28:52
【问题描述】:

我有一个 PHP 字符串数组,我想用一个字符作为后缀。在正则表达式下面添加每个数组元素的前缀:

$prefixed_array = preg_filter('/^/', 'prefix_', $array);

但是,我需要添加后缀。

基本上我想从这个开始:

$array = ["a", "b", "c", "d", "f"];

到这里:

$array = ["a_M", "b_M", "c_M", "d_M", "f_M"];

我可以用foreach 来做,但需要一个正则表达式(只是正则表达式)。

【问题讨论】:

  • @SahilGulati:实际上,这个 OP 正则表达式解决方案就是取自那个帖子。我认为 OP 对向 PHP 数组添加后缀的正则表达式方式感兴趣,如果有额外的模式要求,这种方式更合适(不确定 OP 是否揭示了现实问题的所有细节)。
  • @SahilGulati:我只需要正则表达式。感谢 Wiktor Stribiżew。

标签: php arrays regex


【解决方案1】:

如果您想为此使用带有正则表达式的preg_filter,请将^ 替换为$(字符串的结尾)(或\z - 字符串的结尾):

$array = ["a", "b", "c", "d", "f"];
$suffixed_array = preg_filter('/$/', '_M', $array);
print_r($suffixed_array);

PHP demo

一种非正则表达式的方式是像这样使用array_map

$suffixed_array = array_map(function ($s) {return $s . '_M';}, $array);

this PHP demo

【讨论】:

  • 我还需要在值的开头和结尾添加前缀,那么如何通过preg_filter来完成?
  • @Hassaan 我认为您想为此使用preg_replace。喜欢$arr = preg_replace('/^.*$/', 'PREF_$0_SUFF', $arr);。或$arr = array_map(function ($s) {return 'prefix_' . $s . '_suffix';}, $arr)
【解决方案2】:

使用array_map的其他方法

$array = ["a", "b", "c", "d", "f"];

$array = array_map(function($k) {
    return $k . '_M';
}, $array);

print_r($array);

【讨论】:

  • 这实际上是我回答的一部分。此外,我认为 OP 对解决问题的 regex 方式很感兴趣,否则,PHP Arrays - Adding a String to all Values 帖子就足够了。
  • 我在发布答案后看到了您的更新,抱歉
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多