防止从某些字符串添加美元符号

时间:2014-09-16 13:54:56

标签: php arrays preg-replace preg-match substr

我有这个数组;

Array ( 
       [0] => ( 
       [1] => he 
       [2] => + 
       [3] => is 
       [4] => + 
       [5] => genius 
       [6] => ) 
       [7] => * 
       [8] => and 
       [9] => / 
       [10] => clever )

可以在数组中的每个字母数字字符串之前放置美元符号,链接在这里: Adding dollar sign before each string in array?

现在,是否有可能阻止将美元符号添加到某个字符串中,例如,如果有一个单词,那么数组中的人或者他们不应该添加到这些字符串中?

2 个答案:

答案 0 :(得分:4)

关掉你的旧代码,我修改了它:

$noappend = array("she","who","they"); // add more

// $arr is your array as defined in your question
foreach ($arr as &$val) {
  //OR if (ctype_alpha($val[0])) { 
  if (ctype_alpha($val) && !in_array($val, $noappend)) {
    $val = '$' . $val;
  }
}

var_dump($arr);

答案 1 :(得分:2)

在数组中定义单词: $no_dollar_sign = array('she', 'who', 'they');

在您的数组中循环,并使用in_array将美元符号添加到不在$no_dollar_sign数组中的字符串。

foreach($array as $key => $item){
    if(!in_array($item, $no_dollar_sign)){
        $array[$key] = '$'.$item;
    }
}

新值将显示在$array中,不会更改被阻止的字词。

如果你没有美元符号" list非常大,创建/管理自己的列表是不合理的,那么你应该非常清楚地定义为什么某些东西应该或不应该与$连接并且可能使用正则表达式的规则。