PHP-使用正则表达式根据值更改数组键

PHP-使用正则表达式根据值更改数组键,php,regex,preg-replace,Php,Regex,Preg Replace,我刚刚开始学习正则表达式,我认为这可以通过使用正则表达式来实现,但无法找到合适的正则表达式匹配项。情况是这样的:我想用相应的值填充数组中的键,但要将所有内容都设置为小写和下划线 PHP数组示例: array('' => 'Red Apple', '' => 'Blue Sky', '' => 'Circle/Earth'); 输出应为: array('red_apple' => 'Red Apple', 'blue_sky' =>

我刚刚开始学习正则表达式,我认为这可以通过使用正则表达式来实现,但无法找到合适的正则表达式匹配项。情况是这样的:我想用相应的值填充数组中的键,但要将所有内容都设置为小写和下划线

PHP数组示例:

array('' => 'Red Apple',
      '' => 'Blue Sky',
      '' => 'Circle/Earth');
输出应为:

array('red_apple' => 'Red Apple',
      'blue_sky' => 'Blue Sky',
      'circle_earth' => 'Circle/Earth');
我能够使用strtolower(),但仍然无法使用preg_replace()。我能用正则表达式做这个吗


谢谢。

正如斯莱尔所说,无需更换preg\u即可完成

这里是一个片段

$new_key=strtolower(str_replace(数组('''/')、'''.'和$value))

检查 快速介绍

str_replace(查找、替换、值)

find可以是一个包含常见的不需要的字符的数组,例如数组(“-”、“/”、“…等)

参考

您可以使用并实现以下目标:

$key = strtolower(preg_replace(array('/[^a-z]+/i', '/\s/'), "_", $string));

如果不使用正则表达式也可以做到这一点,请参考php手册中的字符串函数
$key = strtolower(preg_replace(array('/[^a-z]+/i', '/\s/'), "_", $string));