Существует массив чисел:Фильтрация массив чисел в соответствии с числовым шаблоном
$list = array
(
[0] => 111
[1] => 112
[2] => 113
[3] => 114
[4] => 121
[5] => 122
[6] => 123
[7] => 124
[8] => 131
[9] => 132
[10] => 1234
[11] => 1123
[12] => 1223
[13] => 1233
[14] => 4321
)
и переменный (шаблон):
$input = 1231;
Я хотел бы, чтобы фильтровать массив следующие правила. Пусть $list[$i]
- элемент массива $list
, $d
- это цифра $list[$i]
. Затем
- , если количество цифр равно
$d
в$list[$i]
больше, чем подсчет цифр, равное$d
в$input
, то элемент массива должен быть пропущен; - если нет
$d
цифр, указанных в$input
, то элемент массива должен быть пропущен.
Например, в вышеупомянутом $input
переменной
1
появляется дважды,2
и3
появляются один раз.
Тогда все, что появляется больше, чем это должно быть удалено из массива:
$list = array
(
[0] => 111 ==> should be removed (1 is only defined twice in $input, so it shouldn't appear more than twice)
[1] => 112
[2] => 113
[3] => 114 ==> should be removed (there is no 4)
[4] => 121
[5] => 122 ==> should be removed (2 is only defined once, so it shouldn't appear more than once)
[6] => 123
[7] => 124 ==> should be removed (there is no 4)
[8] => 131
[9] => 132
[10] => 1234 ==> should be removed (there is no 4)
[11] => 1123
[12] => 1223 ==> should be removed (2 is only defined once in $input, so it shouldn't appear more than once)
[13] => 1233 ==> should be removed (3 is only defined once in $input, so it shouldn't appear more than once)
[14] => 4321 ==> should be removed (there is no 4)
)
Как достичь этого?
почему 111112 .. должны быть удалены? –
вы можете попробовать что-то с [substr_count] (http://php.net/manual/en/function.substr-count.php) и [array_filter] (http://php.net/manual/en/function.array -filter.php) –
Почему в мире '111' следует удалить и' 123' останется? Какова логика этого. Вы должны сказать нам причину не только того результата, который вы хотите. – Irvin