清理阵列的某些部分

时间:2012-11-30 19:12:29

标签: php arrays

我使用以下代码导入一个包含两列的csv - account&电话:

$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
        )
)

我需要做的是循环播放数组并清理电话号码,删除空格,反对等。我知道如何进行清理,但无法弄清楚如何循环通过阵列进行清理

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

尝试:

$arr = array(....); //your array
//Removing '(', ')', ' ' and '-' from the array values.
foreach($arr as $v)
 $v = str_replace(array(' ', '(', ')', '-'), '', $v);

答案 2 :(得分:0)

$search = array(' ', '-', '(', ')'); 
foreach($csv as &$line) {
    $line[1] = str_replace($search, '', $line[1]);
}