0

電話番号の配列があり、この配列を有効な電話番号と無効な電話番号に分割する高速な方法が必要です(有効な電話番号と無効な電話番号の定義に従って)、次のようになります。

$phone_numbers = array(
    '04165555555',
    '02125555555'
);

$valid_phone_number_regex = '/^0?(416|426|412|424|414)(\d{7})$/i';

を使用array_filterしてすべての有効な数値を取得できますが、(問題を報告するために) 無効な数値も迅速に取得する必要があります。配列には数の数値が含まれる可能性があります!

4

1 に答える 1

2

から有効な要素を取得したらarray_filter()、を使用して、配列にないarray_diff()要素をすべて返します。$input_array$working

$input_array = array( '04165555555', '02125555555');
$working = array_filter( $input_array, function( $el){ return preg_match( '/^0?(416|426|412|424|414)(\d{7})$/i', $el ); });
$not_working = array_diff( $input_array, $working);

出力:

Valid:
array(1) { [0]=> string(11) "04165555555" }
Invalid:
array(1) { [1]=> string(11) "02125555555" } 

デモ

于 2012-06-13T22:29:42.057 に答える