PHPverse 2025

Voting

: six minus four?
(Example: nine)

The Note You're Voting On

Anonymous
9 years ago
count_chars for multibyte supported.

<?php

function mb_count_chars ($string, $mode = 0) {

$result = array_fill(0, 256, 0);

for (
$i = 0, $size = mb_strlen($string); $i < $size; $i++) {
$char = mb_substr($string, $i, 1);
if (
strlen($char) > 1) {
continue;
}

$code = ord($char);
if (
$code >= 0 && $code <= 255) {
$result[$code]++;
}
}

switch (
$mode) {
case
1: // same as 0 but only byte-values with a frequency greater than zero are listed.
foreach ($result as $key => $value) {
if (
$value == 0) {
unset(
$result[$key]);
}
}
break;
case
2: // same as 0 but only byte-values with a frequency equal to zero are listed.
foreach ($result as $key => $value) {
if (
$value > 0) {
unset(
$result[$key]);
}
}
break;
case
3: // a string containing all unique characters is returned.
$buildString = '';
foreach (
$result as $key => $value) {
if (
$value > 0) {
$buildString .= chr($key);
}
}
return
$buildString;
case
4: // a string containing all not used characters is returned.
$buildString = '';
foreach (
$result as $key => $value) {
if (
$value == 0) {
$buildString .= chr($key);
}
}
return
$buildString;
}

// change key names...
foreach ($result as $key => $value) {
$result[chr($key)] = $value;
unset(
$result[$key]);
}

return
$result;

}
?>

<< Back to user notes page

To Top