添加美元符号在阵列中的每个字符串之前? [英] Adding dollar sign before each string in array?
本文介绍了添加美元符号在阵列中的每个字符串之前?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个字符串: $海峡=(他是+全国联保* 2)/高明;
它看起来像这样的阵列;
阵列(
[0] => (
[1] =>他
[2] => +
[3] =>是
[4] => +
[5] =>天才
[6] => )
[7] => *
[8] =>和
[9] => /
[10] =>巧)
我想要做的就是将美元符号$在 $ STR
每串present之前,但忽略了非字母和数字是什么。
最后我想有一些看起来像这样;
$ =中newstr($他+ $是+ $天才* 2)/ $聪明;
解决方案
有关每个值,检查第一个字符(或整个值)与而ctype_alpha
,然后prePEND与 $
:
// $ ARR是在你的问题中定义阵列
的foreach($改编为&放大器; $ VAL){
//或者如果(而ctype_alpha($ VAL [0])){
如果(而ctype_alpha($ VAL)){
$ VAL =$。 $ VAL;
}
}后续代码var_dump($ ARR);
输出:
阵列(6){
[0] =>
串(3)$他
[1] =>
串(1)+
[2] =>
串(3)$是
[3] =>
串(1)+
[4] =>
字符串(7)$天才
...
}
第二类解决方案,检查是否有在任何位置上的字符:
的foreach($改编为&放大器; $ VAL){
$ TMP = str_split($ VAL);
的foreach($ TMP为$字符){
如果(而ctype_alpha($字符)){
$ VAL =$。 $ VAL;
打破;
}
}
}
I have this string: $str = "(he+is+genius*2)/clever";
which looks like this in array;
Array (
[0] => (
[1] => he
[2] => +
[3] => is
[4] => +
[5] => genius
[6] => )
[7] => *
[8] => and
[9] => /
[10] => clever )
What I want to do is placing dollar sign $ before each string present in $str
but ignoring non-alphanumeric and numbers.
At the end i want to have something which looks like this;
$newstr = "($he+$is+$genius*2)/$clever";
解决方案
For each value, check if the first char (or the whole value) is made of characters with ctype_alpha
, then prepend with $
:
// $arr is your array as defined in your question
foreach ($arr as &$val) {
//OR if (ctype_alpha($val[0])) {
if (ctype_alpha($val)) {
$val = '$' . $val;
}
}
var_dump($arr);
Output :
array(6) {
[0]=>
string(3) "$he"
[1]=>
string(1) "+"
[2]=>
string(3) "$is"
[3]=>
string(1) "+"
[4]=>
string(7) "$genius"
...
}
Second solution, checking if it has a char at any position :
foreach ($arr as &$val) {
$tmp = str_split($val);
foreach ($tmp as $char) {
if (ctype_alpha($char)) {
$val = '$' . $val;
break;
}
}
}
这篇关于添加美元符号在阵列中的每个字符串之前?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文