fork download
  1. <?php
  2.  
  3. $veryLongString = "/9j/4AAQSkZJRgABAgEAYABgAAD/4Q8HRXhpZgAATU0AKgAAAAgABgEyAAIAAAAUAAAAVkdGAAMAAAABAAMAAEdJAAMAAAABADIAAJydAAEAAAAOAAAAAOocAAcAAAf0AA+fhgkddfevbbghhhghhhhgskfAAaaaAABBBBBBBBBBB===bbhjstdef";
  4. $positions = str_split($veryLongString);
  5. $frequencies = array_count_values($positions);
  6.  
  7. foreach($frequencies as $character => $frequency) {
  8. echo sprintf(
  9. '%s appears %d time%s',
  10. $character,
  11. $frequency,
  12. (($frequency != 1) ? 's' : '')
  13. );
  14. $characterPositions = array_keys(
  15. $positions,
  16. function($value) use($character) {
  17. return $value === $character;
  18. }
  19. )
  20. );
  21. echo sprintf(
  22. ' at position%s %s',
  23. (($frequency != 1) ? 's' : ''),
  24. implode(',', $characterPositions)
  25. ), PHP_EOL;
  26. }
Success #stdin #stdout 0.03s 24448KB
stdin
Standard input is empty
stdout
/ appears 3 times at positions 0,3,27
9 appears 1 time at position 
j appears 2 times at positions 2,179
4 appears 2 times at positions 
A appears 67 times at positions 5,6,14,16,19,21,24,25,38,39,43,46,47,48,49,51,56,57,59,60,61,62,64,65,66,67,72,73,75,76,77,78,80,81,83,84,88,89,91,92,93,94,96,99,100,104,105,107,108,109,110,112,113,114,115,116,120,121,123,124,125,128,129,155,156,160,161
Q appears 2 times at positions 7,29
S appears 1 time at position 8
k appears 4 times at positions 9,69,134,153
Z appears 2 times at positions 10,36
J appears 3 times at positions 11,87,101
R appears 2 times at positions 12,32
g appears 11 times at positions 13,17,23,37,45,50,53,133,142,146,151
B appears 16 times at positions 15,22,52,79,95,162,163,164,165,166,167,168,169,170,171,172
E appears 4 times at positions 18,54,85,106
Y appears 1 time at position 20
D appears 2 times at positions 26,97
8 appears 1 time at position 
H appears 1 time at position 31
X appears 1 time at position 33
h appears 10 times at positions 34,132,143,144,145,147,148,149,150,178
p appears 1 time at position 35
T appears 1 time at position 40
U appears 2 times at positions 41,63
0 appears 2 times at positions 
K appears 1 time at position 44
y appears 2 times at positions 55,102
I appears 2 times at positions 58,98
V appears 1 time at position 68
d appears 6 times at positions 70,86,103,135,136,182
G appears 1 time at position 71
M appears 3 times at positions 74,82,90
O appears 2 times at positions 111,117
o appears 1 time at position 118
c appears 2 times at positions 119,122
f appears 5 times at positions 126,131,137,154,184
+ appears 1 time at position 130
e appears 2 times at positions 138,183
v appears 1 time at position 139
b appears 4 times at positions 140,141,176,177
s appears 2 times at positions 152,180
a appears 3 times at positions 157,158,159
= appears 3 times at positions 173,174,175
t appears 1 time at position 181