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


Prevent dollar sign to be added from certain strings

我有这个this数组;

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

可以将美元符号放在数组中每个字母数字字符串之前,链接如下:在数组中的每个字符串之前添加美元符号?

现在,有没有可能阻止美元符号被添加到特定的字符串中,例如,如果数组中有一个单词she、who或they,那么美元符号不应该被添加到这些字符串中?

离开你的旧代码,我修改了它:

$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);

在数组中定义单词:$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中,而不会更改被阻止的单词。

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