2012-06-24 76 views
1

嗨需要幫忙從給定數組重複值,下面是我嘗試的$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); 

目前獲得最大的價值,我得到的代碼$最大= 1;我需要$最大是8

回答

1

何不:

foreach ($values as $key=>$value) 
    $max = max(substr_count($value,'|')+1,$max); 

echo $max; 

否陣列分裂或存儲陣列。 :)

+0

如何獲得重複值 – user1477117

+0

@ user1477117這是一個問題嗎? – iambriansreed

+0

@iambrainsreed:我需要在數組中獲得最重複的值,我如何使用您的方法獲得重複值 – user1477117

0

可以使用max()在陣列中找到的最高值,這裏有一個例子

echo max(array(1, 5, 7, 2, 3)); 

這應該給你17

foreach ($values as $item) 
{ 
    $temp[] = substr_count($item, "|") + 1; 
} 

echo max($temp); 
+0

但我真的無法獲得其即時通訊使用 – user1477117

+0

從上面的代碼中最大值@ user1477117看到我的更新答案 – slash197

1

如果你已經你有數組$計數的值,你只需要找到數組中的最大值,就像我想你問的那樣,然後有一個內置函數已經在php中。

$max = max($counts); 

$最大將等於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

+0

由於其工作 – user1477117

+0

更好,但iambriansreed的想法納入substr_count(),你可以得到的文檔在。 http://php.net/manual/en/function.substr-count.php – Roger

0

你很可能substr_count($key,'|')+1,而不是explode

編輯:我在想,我不是很清楚這個問題的真正理解,也許你能寫得更清楚些嗎?你爲什麼使用key功能?