Adding dollar sign before each string in array?

前端 未结 2 712
北海茫月
北海茫月 2021-01-27 07:10

I have this string: $str = \"(he+is+genius*2)/clever\"; which looks like this in array;

Array ( 
  [0] => ( 
  [1] => he 
  [2] => + 
  [3]         


        
2条回答
  •  孤街浪徒
    2021-01-27 07:41

    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;
        }
      } 
    }
    

提交回复
热议问题