請問如何比較多個變數

edited 十月 2013 in PHP新手區
想請問如何比較多個變數的值是否相同。

我有 10 個變數,必須自行比較哪幾個變數值相同,然後顯示出來。


簡化過的程式碼:
<?php
  $var1 = $var2 = $var3 =10;
  $str1 = $str2 = "Hello";
  $x = $y = $z =$r = $k = 1;
?>

假設不知道 $var1、$var2、$var3、......、$var10 的值,現在要互相比較哪些值相等,然後顯示「變數 X?/X、Y#Y、@^ZZ 的值相等」類似這樣,需怎樣寫?完全沒頭緒,請各位大老告知ㄧ下。

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=2099

評論

  • edited 九月 2006
    只能一個一個的交叉比對吧??
    $var1跟$var2...$var10比
    $var2跟$var3...$var10比
    ...
    ...
    $var9跟$var10比

    然後看你想怎麼處理後續動作(顯示「變數 X?/X、Y#Y、@^ZZ 的值相等」類似這樣<=看不懂),將需要的資訊保留下來
  • edited 九月 2006
    感謝 sam0228 大解疑,thank you !

    顯示結果類似這樣:
    變數 $var1 、 $var2、 $var3 三者相等。
    變數 $str1 、 $str2 二者相等。
    變數 $x、 $y、 $z、$r、 $k 五者相等。


    我最近在寫 PHP 碰到這個問題,使用端輸入幾個變數 submit,輸入值以空格格開,我抽取出後各變數後,要測試他輸入的值有哪幾個相同再做後續處理。
    問題就卡在怎麼測試對方輸入的哪些值相同。
    sam0228 大的解法讓我豁然開朗,寫個迴圈測試然後兩兩比較相等者將變數名稱存入陣列,跑起來也很快。我一直想說一口氣比對好幾個,原來要慢慢的 兩兩比對。

    但是如果要交叉比對,那變數一多(例如來個 2000 個),會不會就完蛋了?像這種比對,不管程式語言種類,每次只能兩個兩個比對嗎?還是這是 PHP 比對運算子(===,Comparison Operators
    )的限制?
  • edited 九月 2006
    所有程式的基本都是兩兩比對
    除非該程式有幫user寫好多重比對的function
    但是實際function裡還是兩兩比對
    這是卡在cpu運算上,即使是多執行緒,一個執行還是只能做一次比對
    玩過低階程式語言像組合語言的就會比較熟悉
  • edited 九月 2006
    萬分感謝 sam0228 大的解答,原來如此。
Sign In or Register to comment.