請問如何統計不同陣列中出現相同的元素數?

不過大概是邏輯轉不過來吧,一直想不到方法

還請版上前輩們不吝指教

ex.

陣列A= red, white, yellow

陣列B=black, red, white

希望的結果是

red= 2

white= 2

black = 1

yellow = 1

不過自己做出來的結果都是只有單獨統計每一個陣列中元素數

red= 1 , white= 1, yellow=1

black=1, red=1, yellow=1

感謝~

3 Answers

Rating
  • 1 decade ago
    Favorite Answer

    您可以先使用array_merge,

    先將兩個陣列合併,

    再用array_count_values將陣列的值的重覆次數算出。

    示範程式碼如下示:

    <?php

    $a=array('red','white','yellow');

    $b=array('black','red','white');

    $c=array_merge($a,$b);

    $acv=array_count_values($c);

    foreach($acv as $key => $value){

    echo $key.'='.$value.'<br />';

    }

    ?>

    當然您的問題也可以不用使用上述的函式達成,

    也可以試著使用迴圈得解,

    這個就留給您自己回答囉!

    Source(s): 自己
    • Login to reply the answers
  • 1 decade ago

    <?

    function get_element($arr1, &$arr2){

    foreach($arr1 as $fk => $fv){

    $find = false;

    foreach($arr2 as $sk => $sv){

    if( $fv == $sk ){

    $arr2[$sk] ++;

    $find = true;

    break;

    }

    }

    if( !$find ){

    $arr2[$fv] = 1;

    }

    }

    }

    $array1 = array("red", "white", "yellow");

    $array2 = array("black", "red", "white");

    $get = array();

    get_element($array1, $get);

    get_element($array2, $get);

    print_r($get);

    ?>

    • Login to reply the answers
  • 1 decade ago

    很抱歉!

    我連題目都看不懂...

    • Login to reply the answers
Still have questions? Get your answers by asking now.