2013-01-23 32 views
0

我刚开始学习正则表达式,我认为这可以使用正则表达式完成,但无法找到正确的正则表达式匹配。这是情况:我想用相应的值填充数组中的Key,但是将所有内容都设为小写和下划线。PHP - 使用正则表达式根据值更改数组键

例PHP数组:

array('' => 'Red Apple', 
     '' => 'Blue Sky', 
     '' => 'Circle/Earth'); 

输出应为:

array('red_apple' => 'Red Apple', 
     'blue_sky' => 'Blue Sky', 
     'circle_earth' => 'Circle/Earth'); 

我能够使用用strtolower(),但被陷使用的preg_replace()。我甚至可以用正则表达式来做到这一点?

谢谢。

+1

u能做到不使用正则表达式,PHP手册中的咨询字符串函数 – slier

回答

1

正如slier说,它可以在不的preg_replace

这里做的是一个片段

$new_key = strtolower(str_replace(array(' ', '/'), '_', $value)));

检查http://php.net/str_replace 快速引进

str_replace函数(查找,替换值);发现可以是一个包含常见不需要的字符,如数组(' - ','/','',..等)的数组;

0

Confirmed working

$array = array(
    'Red Apple', 
    'Blue Sky', 
    'Circle/Earth' 
); 

function nice_keys($key) { 
    return strtolower(str_replace(array(' ', '/'), '_', $key)); 
} 

$clean_keys = array_map('nice_keys', $array); 
$new_array = array_combine($clean_keys, $array); 

print_r($new_array); 

参考