Вычислить наивысшие повторяющиеся целые числа из двух ассоциативных массивов

Учитывая два ассоциативных массива:

$fruits = array ( "d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple" ); $fruits2 = array ( "e" => "lemon", "f" => "apple", "g" => "melon", "h" => "apple" ); 

Я хотел бы сделать что-то вроде:

 for ( $n = count($fruits), $i = 0; $i < $n; $i++) { $test = (bool) $fruits[$i] == $fruits2[$i]; } 

Это не может работать, поскольку я использую ассоциативный массив. Каким будет лучший способ достичь этого? (Этот цикл будет интенсивным, поэтому я хотел бы сохранить его как можно более легким)

EDIT, чтобы дать более подробную информацию о том, что я пытаюсь сделать:

Вот лучший пример того, чего я пытаюсь достичь:

 $array = array ( 1,2,3,4,3,2 ); $array2 = array ( 9,6,3,4,3,2 ); $counts = array_count_values( $words ); $counts2 = array_count_values( $words2 ); 

Учитывая вышеприведенные массивы, мне нужно вычислить, какой массив является наивысшим количеством повторяющихся целых чисел. Представьте себе игру в покер, сравнив две руки, каждая из которых содержит дубликаты карт, как оценить, какой набор дубликатов (будь то двойной, тройной или четверной), как наивысшее значение.

Используйте функцию array array_values ​​(array $ input) и сравнивайте их.

  $value1=array_values($fruits); $value2=array_values($fruits2); for ( $i = 0; $i < count($value1); $i++) { $test[] = $value1[$i] == $value2[$i] ? TRUE : FLASE; } 

Получил это так:

 $n = count($fruits); for ( $i = 0; $i < $n; $i++) { $cur_vals_1 = each ($fruits); $cur_vals_2 = each ($fruits2); $sum1 += $cur_vals_1['key'] * $cur_vals_1['value']; ... } 

Возможно, вы преследуете неправильное решение. Чтобы найти самый высокий дубликат в массиве, я бы использовал это (синтаксис PHP 5.3+):

 max(array_keys(array_filter(array_count_values($array), function ($i) { return $i >= 2; }))) 

Сделайте это для обоих массивов и сравните, какой результат выше. Попытка сравнить друг с другом в одно и то же время слишком запутана.

Вам не нужен тройной оператор.
Кроме того, будьте осторожны с count (), поскольку он будет терпеть неудачу, если ваш массив равен NULL.
Они также должны быть одинаковой длины, или вы получите сообщение об ошибке.

 if( is_array($value1) && is_array($value2) && count($value1)==count($value2) ) { for ( $i = 0; $i < count($value1); $i++) { $test[] = ($value1[$i] == $value2[$i]); } }