看板 PHP 關於我們 聯絡資訊
蠻酷的需求 來練功一下 $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
CaptainH: 有點想噓...一個 for 可以完成的事弄得這麼糟 06/12 18:21
CaptainH: 複製了一大堆沒必要的東西 06/12 18:21
我想太複雜了 哈 for就可以做完了 ※ 編輯: ImNot5566 (36.226.156.120), 06/12/2015 18:41:50
hareion08: 雖然不是最好解決法,但是推教學相長! 06/12 21:18
poeta: 原文是這樣嗎?還是改過了? 06/13 01:45
我沒改
mmis1000: 這種做法似乎會生成新的array浪費記憶體? 06/13 05:26
MOONRAKER: 有證據說closure的array傳遞不用reference嗎? 06/13 12:29
一個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