Alicia Posted December 2, 2009 Share Posted December 2, 2009 Hi, I have a script (attached at the bottom of the page) that can display the output I want but now I have a big problem finding a way to filter the output so it will show the results as below. <?php for($i = 0; $i < 10000; $i++){ $formattedi = str_split(str_pad($i,4,'0',STR_PAD_LEFT)); $count = array_count_values($formattedi); $min = min($count); $max = max($count); if($max == 1) $group = 'all different numbers'; if($max == 2 and $min == 2) $group = 'same numbers in pair'; if ($max == 3) $group = '3 same numbers'; if ($max == 2 and $min ==1) $group = '2 same numbers only'; if($max == 4) $group = '4 same numbers'; $out[$group][] = implode('', $formattedi); } echo '<pre>', print_r($out), '</pre>'; ?> This is the kind of output I tried to filter : assuming abcd represents 4 different digit and we need the following output from the script we have : ABCD , AABC , AABB and AAAB ... We can do the first one ABCD but not the following cases where similar digits are side by side For instance for e.g : AABC (4 digits number with 2 same numbers), it will show only something like 1123, 3122 and not display output like 2129, 1091. Remove those with 2 counts but not side by side. e.g : AAAB (3 digits number) will show 1112, 2333, 7999 from the script below but not 2322, 1121 e.g : AABB will show 1122, 3344 but will not show 2211 (since it is repeating) and will not show 1221 since same digits are not side by side. Thanks. Quote Link to comment https://forums.phpfreaks.com/topic/183703-filtering-function/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.