[請益] array_search 是完全相同嗎?

看板PHP作者 (光子郎)時間8年前 (2017/08/21 17:11), 8年前編輯推噓2(2011)
留言13則, 5人參與, 最新討論串1/1
我AB陣列內有這些值 0000000000E01 0000000000E02 0000000000E03 . . . 0000000000E50 用array_search找她的key值 比對出來都只會跑1耶 也就是說 比對出來都是 111111111111111 正常來說應該是 1 2 3 4 5 6 7...50才對 陣列內其他的數值都沒問題 就這組不對.. 是array_search有長度限制 還是這值本身有BUG? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.62.185.25 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1503306665.A.661.html ※ 編輯: powyo (210.62.185.25), 08/21/2017 17:12:00

08/21 17:23, , 1F
16進制要用0x0000000000E01吧!
08/21 17:23, 1F
值不是16進位 就字串而已 長度好像也不是問題 裡面還有 0000000000071 0000000000074 這兩個值都是正確的.. ※ 編輯: powyo (210.62.185.25), 08/21/2017 17:24:28

08/21 17:27, , 2F
不然會被當成E(10的次方數)
08/21 17:27, 2F

08/21 17:27, , 3F
那你前面全部是0,不管你是10的多少次方都是0
08/21 17:27, 3F

08/21 17:28, , 4F
踩到PHP的自動轉型地雷,範例:https://goo.gl/GmYZWX
08/21 17:28, 4F

08/21 17:29, , 5F
把 array_search 的第三個參數設為 true 看看
08/21 17:29, 5F

08/21 17:31, , 6F
這個是被被轉型成數字,只有前面一堆0被當數字解讀=> 0
08/21 17:31, 6F

08/21 17:31, , 7F
感謝!! 板上果然神人多..
08/21 17:31, 7F

08/21 17:32, , 8F
沒錯就是這樣 謝謝
08/21 17:32, 8F

08/21 17:32, , 9F
更正,tkdmaf 的說法才是對的...XD 不過結果一樣
08/21 17:32, 9F

08/21 17:35, , 10F
自動轉型真的是一個……ooxx……有方便,也有不便
08/21 17:35, 10F

08/21 18:21, , 11F
var_dump ( 0000000000E01 == 0000000000E02 ) true
08/21 18:21, 11F

08/21 18:23, , 12F
var_dump("0000000000E01" == "0000000000E02")也一樣
08/21 18:23, 12F

08/27 13:07, , 13F
請用 === 全等 做這種判斷
08/27 13:07, 13F
文章代碼(AID): #1PcgEfPX (PHP)
文章代碼(AID): #1PcgEfPX (PHP)