Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数组的preg_replacement()_Php - Fatal编程技术网

php数组的preg_replacement()

php数组的preg_replacement(),php,Php,我正在创建一个动态php数组$line echo "<pre>",print_r($line,1),"</pre>"; $re1='(")'; # Any Single Character 1 $re2='((?:[a-z][a-z]+))'; # Word 1 $re3='(,)'; # Any Single Character 2 $re4='(\\s+)'; # White Space 1

我正在创建一个动态php数组$line

echo "<pre>",print_r($line,1),"</pre>";
        $re1='(")'; # Any Single Character 1
        $re2='((?:[a-z][a-z]+))';   # Word 1
        $re3='(,)'; # Any Single Character 2
        $re4='(\\s+)';  # White Space 1
        $re5='((?:[a-z][a-z]+))';   # Word 2
        $re6='(\\s+)';  # White Space 2
        $re7='.*?'; # Non-greedy match on filler
        $re8='(")';

        $reg1="/".$re1.$re2."/";
        $reg2="/".$re3.$re4."/";
        $reg3="/".$re5.$re6.$re7.$re8."/";
        $line = preg_replace("/".'($reg1)$reg2($reg3)'."/", "$1$2", $line);//this is also generating the same array "AARON,  ELVIA J",WATER RATE TAKER,WATER MGMNT,$81000.00,$73862.00
        echo "<pre>",print_r($line,1),"</pre>";

        $pattern="/".$re1.$re2.$re3.$re4.$re5.$re6.$re7.$re8."/";
        $replacement="/".$re2.$re5.$re7."/";

        $values = preg_replace($pattern, $replacement, $line);
        $values = explode(',',$line);
        echo "<br>";
        $values =preg_replace('/[^A-Za-z0-9\-]/', '', $values);
        $values=implode(',',$values);
        echo "<pre>",print_r($values),"</pre>";
        echo "<pre>",print_r($values,1),"</pre>";
"; AARONELVIAJ,水费收取者,水费管理,$81000.00,$73862.00 我所做的:

    $line = '"AARON,  ELVIA J",WATER RATE TAKER,WATER MGMNT,$81000.00,$73862.00';
    $pieces = explode('"', $line);

    $result = '';
    foreach ($pieces as $value) {
    if(substr( $value, 0, 1 ) === "," || substr($value, -1) == ','){
        $result .= $value;
    }else{
        $value = str_replace(',', '', $value);
        $result .= str_replace(' ', '', $value);
    }
}
echo $result;
有人请帮我找到解决方案

试试这个

该函数将为您完美地完成此操作

给出:

如果确实要从名称中删除空格和逗号,则可以添加:


在尝试输出数组之前,您最好使用array_walk或array_map对数组中的所有元素应用格式化函数。我尝试了array_map,但这并没有提供所需的结果。它还提供了AARON、ELVIAJ、WATERRATETAKER、WATERMGMNT、81000007386862001等结果。它正在生成相同的数组倍数t我不明白,$line是数组的元素吗?
AARON,ELVIAJ,WATERRATETAKER,WATERMGMNT,8100000,73862001
    $line = '"AARON,  ELVIA J",WATER RATE TAKER,WATER MGMNT,$81000.00,$73862.00';
    $pieces = explode('"', $line);

    $result = '';
    foreach ($pieces as $value) {
    if(substr( $value, 0, 1 ) === "," || substr($value, -1) == ','){
        $result .= $value;
    }else{
        $value = str_replace(',', '', $value);
        $result .= str_replace(' ', '', $value);
    }
}
echo $result;
$result = str_getcsv($line);
Array
(
    [0] => AARON,  ELVIA J
    [1] => WATER RATE TAKER
    [2] => WATER MGMNT
    [3] => $81000.00
    [4] => $73862.00
)
$result[0] = preg_replace('/\s+|,/', '', $result[0]);