0

次のコードを使用して、アカウントと電話の 2 つの列を持つ 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_map、 andを使用できます。preg_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 に答える