您需要帮助从给定数组获取重复值,下面是我尝试获取最大值$values[4]
的代码
$values = array(
"0"=> "abc",
"1"=> "aaa",
"2"=> "aaa|abc",
"3" => "| | | | | | | | | | | | | | | | ",
"4" => "a|b|b|c|d|e|f|g",
"5" => "1|2|3||4|5|6"
);
foreach ($values as $key) {
$prevalues = explode('|', $key);
$count[] = count($prevalues);
}
print_r($counts);
$counts = array_count_values($count);
arsort($counts);
echo $max= key($counts);
Array
(
[0] => 1
[1] => 1
[2] => 2
[3] => 17
[4] => 8
[5] => 8
)
print_r($max );
目前,我的$ max = 1;我需要$ max为8。
答案 0 :(得分:1)
如果你已经拥有了带有值的数组$ count,你只需要找到数组中的最大值,就像我想你要问的那样,那么在php中已经有了内置函数。
$max = max($counts);
$ max将等于17。
文档: http://php.net/manual/en/function.max.php
关于根据你对iambrainsreed的评论在数组中找到必须重复的值:
您可以使用array_count_values()。
$valueCount = array_count_values($counts);
print_r($valueCount);
输出:
Array
(
[1] => 2
[2] => 1
[17] => 1
[8] => 2
)
从那里你可以根据需要使用这些数据 文档: http://php.net/manual/en/function.array-count-values.php
答案 1 :(得分:1)
为什么不:
foreach ($values as $key=>$value)
$max = max(substr_count($value,'|')+1,$max);
echo $max;
没有数组拆分或存储数组。 :)
答案 2 :(得分:0)
您可以使用max()
查找数组中的最高值,这是一个示例
echo max(array(1, 5, 7, 2, 3));
这应该会给你17
foreach ($values as $item)
{
$temp[] = substr_count($item, "|") + 1;
}
echo max($temp);
答案 3 :(得分:0)
您可以使用substr_count($key,'|')+1
代替explode
。
编辑:我在想我并不清楚这个问题,或许你能写得更清楚吗?你为什么使用key
函数?