Re: [問題] 判斷一數字是否介於某些範圍之內

看板PHP作者 (❺❺❻❻)時間10年前 (2015/06/12 17:40), 10年前編輯推噓3(303)
留言6則, 5人參與, 最新討論串2/7 (看更多)
蠻酷的需求 來練功一下 $a=[2,7,14,28,32,38,41,49]; $two_pair_as_range_compare = function($array, $compare){ $range = array_chunk($array,2); foreach($range as $eq){ if( $compare>=$eq[0] && $compare<=$eq[1] ) return true; } return false; }; var_dump($two_pair_as_range_compare($a, 要比對的數字)); ※ 引述《red0whale (red whale)》之銘言: : 假設我有一陣列變數$a=[2,7,14,28,32,38,41,49]; : 今假設一個數$b : 請問怎麼判斷$b是否介於2~7、14~28、32~38、41~49這些範圍之內? : (亦即$b是否介於$a的數值範圍內,假設$a有偶數個元素) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.156.120 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1434102040.A.B69.html

06/12 18:21, , 1F
有點想噓...一個 for 可以完成的事弄得這麼糟
06/12 18:21, 1F

06/12 18:21, , 2F
複製了一大堆沒必要的東西
06/12 18:21, 2F
我想太複雜了 哈 for就可以做完了 ※ 編輯: ImNot5566 (36.226.156.120), 06/12/2015 18:41:50

06/12 21:18, , 3F
雖然不是最好解決法,但是推教學相長!
06/12 21:18, 3F

06/13 01:45, , 4F
原文是這樣嗎?還是改過了?
06/13 01:45, 4F
我沒改

06/13 05:26, , 5F
這種做法似乎會生成新的array浪費記憶體?
06/13 05:26, 5F

06/13 12:29, , 6F
有證據說closure的array傳遞不用reference嗎?
06/13 12:29, 6F
一個for就可以搞定了 $a=[2,7,14,28,32,38,41,49]; $two_pair_as_range_compare = function($array, $compare){ for($i=0;$i<count($array);$i+=2){ if( $compare>=$array[$i] && $compare<=$array[$i+1] ) return true; } return false; }; 我把大家的寫法都放上來測試 for 效能最佳 http://ideone.com/fJ6fvK 程式還是能簡單就簡單 是這樣嗎? XD ※ 編輯: ImNot5566 (114.37.122.124), 06/13/2015 13:42:56
文章代碼(AID): #1LUgaOjf (PHP)
討論串 (同標題文章)
文章代碼(AID): #1LUgaOjf (PHP)