2013-04-11 62 views
-4

我有一個數組,即$ arr(22,123,12345,1234) 用戶輸入一個值,即123456789後,我需要檢查數組中是否存在最長前綴。在上面的輸入案例中,$ arr [2]將被回答。如果輸入是123000,答案將是$ arr [1]。輸入可以是任意長度。需要檢查一個數字的最長前綴

腓暗示將很可觀

+0

提示:'foreach' +'在strpos' – zerkms 2013-04-11 20:31:04

+0

迭代數組並檢查每個元素是否出現在輸入中的位置0處。請記住作爲前綴的最長元素的長度和索引。 – Jon 2013-04-11 20:31:46

+2

此問題沒有顯示任何研究工作。 **做你的作業很重要**。告訴我們你發現了什麼,***爲什麼它不符合你的需求。這表明你已經花時間去嘗試幫助你自己了,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案。 [FAQ](http://stackoverflow.com/questions/how-to-ask)。 – 2013-04-11 20:32:05

回答

1
for ($i = strlen($inputNumber); $i > 0; $i--) 
    foreach ($numberArray as $number) 
     if (strpos($number, substr($inputNumber, 0, $i)) === 0) 
      $longestNumber = $number; 

結果將被存儲在$ longestNumber(首先檢查是否有與isset($longestNumber)失敗)

+0

Thnx bwoebi它的工作原理與我想要的一樣 – 2013-04-11 20:56:51

+0

@Usuwali這是(幾乎)每次有人可以解密這樣的描述:P – bwoebi 2013-04-11 20:58:25

+0

mybad ..即時通訊不編碼怪胎,所以我明白你的感受:D – 2013-04-11 22:27:49