0

我使用以下代码导入具有两列的 csv - 帐户和电话:

$csv = array();
$file = fopen('import.csv', 'r');

while (($result = fgetcsv($file)) !== false)
{
    $csv[] = $result;
}

fclose($file);

结果看起来像:

Array
(
    [0] => Array
        (
            [0] => 5182334
            [1] => (360) 293-7786
        )

    [1] => Array
        (
            [0] => 8372855
            [1] => (360) 755-3237
        )

    [2] => Array
        (
            [0] => 8373250
            [1] => (360) 873-8853
        )

    [3] => Array
        (
            [0] => 8373226
            [1] => (360) 588-1905
        )
)

我需要做的是循环遍历数组并清理电话号码,删除空格、参数等。我知道如何进行清理,但不知道如何遍历数组进行所述清理。

4

3 回答 3

3

例如,您可以使用array_mappreg_replace

function clean($item) {
   $item[1] = preg_replace('#[^\d]#', '', $item[1]);
   return $item;
}

$csv = array_map("clean", $csv);

或者直接在加载阶段:

$csv = array();
$file = fopen('import.csv', 'r');

while (($result = fgetcsv($file)) !== false)
{
    $result[1] = preg_replace('#[^\d]#', '', $result[1]);
    $csv[] = $result;
}
于 2012-11-30T19:17:43.550 回答
0

尝试:

$arr = array(....); //your array
//Removing '(', ')', ' ' and '-' from the array values.
foreach($arr as $v)
 $v = str_replace(array(' ', '(', ')', '-'), '', $v);
于 2012-11-30T19:15:01.093 回答
0
$search = array(' ', '-', '(', ')'); 
foreach($csv as &$line) {
    $line[1] = str_replace($search, '', $line[1]);
}
于 2012-11-30T19:20:05.867 回答