2014-09-16 2 views
1

У меня этот массив;Запрет добавления знака доллара из определенных строк

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

Это было possibe поставить знак доллара перед каждым алфавитно-цифровой строки в массиве, ссылка здесь: Adding dollar sign before each string in array?

Теперь, можно ли предотвратить знак доллара, чтобы быть добавлены в некоторые строки, для Например, если есть слово она, кто или они в массиве, чем знак доллара, не следует добавлять к этим строкам?

+0

только '' she' who' или 'they'? Или есть еще слова? – Dan

+0

есть больше слов. – user2579351

ответ

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); 
+0

с использованием второго решения, которое было первым, foreach ($ arr as & $ val) { $ tmp = str_split ($ val); foreach ($ tmp as $ char) { if (ctype_alpha ($ char)) { $ val = '$'. $ Вэл; break; } } } – user2579351

+0

Почему вы используете 'ctype_alpha'? А также вместо двух вложенных операторов 'if' вы должны использовать' AND' или '&&' – Dan

+0

@ user2579351, используя цикл foreach, который очень похож на 'array_map' и должен работать быстрее. – Dan

2

Определите ваши слова в массиве: $no_dollar_sign = array('she', 'who', 'they');

Loop через массив и добавить знак доллара в строки, которые не в $no_dollar_sign массиве, используя in_array.

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

Новые значения будут в $array без изменения блокированных слов.

Если ваш список «без знака доллара» значительно больше, и вам не разумно создавать/управлять собственным списком, тогда вы должны четко определить, что такое правила, почему что-то должно или не должно быть объединено с $ и потенциально использовать регулярное выражение.

Смежные вопросы