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 回答