我需要可以从字符串中获取最多字母的PHP函数
$string = "111010111010001101";
$execute = SomeFunction($string);
echo $execute;
输出将是这样
1
是否有这样的php函数?谢谢
答案 0 :(得分:2)
你在这里
$string = "111010111010001101";
//$string = "abaacabdeeeee";
$array_count = array_count_values(str_split($string));
$res = array_keys($array_count, max($array_count));
print_r($res);
要使其具有功能,只需执行以下操作:
function SomeFunction($string){
$array_count = array_count_values(str_split($string));
return array_keys($array_count, max($array_count));
}
print_r(SomeFunction('111010111010001101'));
输出
1 //or e in the commented one I tested
工作原理:
str_split
array_count_values
的出现次数array_keys
和max
的密钥注意事项:
如果两个值相等,则它们都将在结果中返回。例如
$string = 'ababababcd';
输出
Array
(
[0] => a
[1] => b
)
您从未提到过在这种情况下想要发生的事情(平局)。对于您的特定情况,这甚至可能不是问题。但是为了完整起见,我不得不提到它。如果您不希望将返回值作为数组,则可以执行以下操作(返回false或第一个元素):
function SomeFunction($string){
$array_count = array_count_values(str_split($string));
$res = array_keys($array_count, max($array_count));
if(empty($res)) return false;
return array_shift($res);
}
干杯!
答案 1 :(得分:1)
无效但简单
max(str_split($string));
答案 2 :(得分:1)
是的,只要您的字符集不是字符串中包含多字节字符的多字节字符集。请参见手册页上的count_chars