字串轉化為數字?該如何解決

來源:互聯網
上載者:User
字串轉化為數字???
今天遇到個比較奇怪的現象,很可能是我儲備還不夠吧,包含引號的數位字串轉化為數字時出現了問題


"1000","902865066306","02865066306","SIP Phone","IP Trunk","","trunk20","ON2OFF","1333230069","1333230072","1333230134","65","62","Connected"

上面的為一段資料,接下來操作

$arr = '"1000","902865066306","02865066306","SIP Phone","IP Trunk","","trunk20","ON2OFF","1333230069","1333230072","1333230134","65","62","Connected"';
$arr = explode(',',$arr);
print_r($arr);

列印

Array
(
[0] => "1000"
[1] => "902865066306"
[2] => "02865066306"
[3] => "SIP Phone"
[4] => "IP Trunk"
[5] => ""
[6] => "trunk20"
[7] => "ON2OFF"
[8] => "1333230069"
[9] => "1333230072"
[10] => "1333230134"
[11] => "65"
[12] => "62"
[13] => "Connected"
)

我想把數組裡的第九個拿出來來和其他的資料比較,平常把引號包圍的字串轉為數字時就是在後面加個0就ok了,可是,今天不一樣了

echo $arr[8] + 0; //結果為0

我就納悶了,怎麼會為0呢,$arr[8]明明有值啊,於是我又測試了下

$num = "1333230069";
echo $num+0;//1333230069

弄了好久沒明白怎麼回事,後來就用了兩個辦法解決了,一個是用正則把數字提出來,另一個是一開始就把字串裡的雙引號全都替換為空白。

可是疑惑還沒有解決,囉嗦到現在,就是想問問大大們,為什麼上面的做法會出現0的結果,而不是想要的數字。

------解決方案--------------------
var_dump($arr[8]); //string(12) ""1333230069""
var_dump($num); //string(10) "1333230069"

這樣看就清楚了,將 $arr[8] 的首尾雙引號去掉後再運算就對了。
------解決方案--------------------
$a=str_getcsv($arr);
var_dump($a[8]);


------解決方案--------------------
根據你提供的資訊我自己也測試了下:
$arr= Array
(0 => "1000",
1 => "902865066306",
2 => "02865066306",
3 => "SIP Phone",
4 => "IP Trunk",
5 => "",
6 => "trunk20",
7 => "ON2OFF",
8 => "1333230069",
9 => "1333230072",
10 => "1333230134",
11 => "65",
12 => "62",
13 => "Connected"
);
echo gettype($arr[8])."
";
echo $arr[8]."
";
$str1=$arr[8]+0;
echo gettype($str1)."
";
echo ($str1)."
";

$num = "1333230069";
$num1=($num+0);
echo gettype($num)."
";
echo gettype($num1)."
";
echo $num1;

?>


輸出結果是:
string
1333230069
integer
1333230069
string
integer
1333230069

發現沒有出現樓主的問題。
------解決方案--------------------
沒必要那麼麻煩吧?
$arr = '"1000","902865066306","02865066306","SIP Phone","IP Trunk","","trunk20","ON2OFF","1333230069","1333230072","1333230134","65","62","Connected"';
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.