我正在開發一個用戶驅動的電子商務網站,需要一些幫助。我擁有的是一個函數,它將通過一個數組循環移除重複項以及它發生的次數。然後,我需要在每次提取的重複項上運行一個函數,並多次執行。我到目前爲止的代碼有效,但當有多個具有相同重複計數的重複項時會中斷。這裏是我曾經嘗試這樣做提取重複項,並在php數組中出現多少次
if(count($array_unique) - count($match_count_unique) == 1) // do something
或
if(count($array_unique) != count($match_count_unique) == 1) // do something
到目前爲止,我所做的代碼..
$affiliates = array(11,11,12,12,13,13,13,14,14,14,14); //breaks the code
$affiliates = array(11,11,13,13,13,14,14,14,14,12,12,12,12,12); // works fine
$array = array();
$match_count = array();
foreach($affiliates as $key => $affiliate) {
$array[] = $affiliate;
}
arsort($array); // keeps array index in order
foreach($array as $arrays) {
if(array_value_count($arrays,$array) > 1) {
$match_count[] = array_value_count($arrays,$array);
}
}
$match_count = array_unique($match_count);
$array_unique = arrayDuplicate($array);
$final_array = array_combine($match_count,$array_unique);
foreach($final_array as $key => $value) {
for($i = 0; $i < $key; $i++) {
echo 'addOrder(affiliate_id = ' . $value . ') . '<br>';
}
}
功能
function unique_array($array) {
return array_unique($array, SORT_NUMERIC);
}
function arrayDuplicate($array) {
return array_unique(array_diff_assoc($array,array_unique($array)));
}
function array_value_count($match, $array) {
$count = 0;
foreach ($array as $key => $value)
{
if ($value == $match)
{
$count++;
}
}
return $count;
}
修復重複破譯密碼
我怎麼知道在哪裏正確添加缺少的重複值計數和數組項目,而不會使它們不同步?或者有更好的方法來做到這一點?
我發誓我試過這個功能!所以我想我沒有寫任何代碼,因爲它已經是本地函數了!你認爲哪種方法可以更好地處理大型數組? – handmdmr
@handmdmr'array_count_values'與我的解決方案中的'foreach'循環完全相同。我沒有一個人會更有效率,因爲他們基本上可以做同樣的事情。 @KanishkaGanguly爲內置函數+1,但@handmdmr您仍然需要循環顯示結果,因爲您想爲每個被騙項目 –
AFAIK做些事情,內置函數通常會更優化比我們自己寫的要多。 –