2016-09-24 31 views
-1

我想将'82,10,1,6,150,249'字符串转换为int。

我使用此代码
我想将此字符串'82,10,1,6,150,249'转换为int在php

$packet = '82,10,1,6,150,249'; 
    $intPacket = (int)$packet; 

但这种代码转换其中的一个

array(1) { [0]=> int(82) } 

我想转换产品总数

+0

'Explode'和相互转换的一部分。 –

+0

你想得到每个由逗号分隔的整数吗? –

回答

0

与试试这个, 使用explode array_map

$packet = '82,10,1,6,150,249'; 
$integerIDs = array_map('intval', explode(',', $packet)); 

输出

array(6) { 
      [0]=> 
       int(82) 
      [1]=> 
       int(10) 
      [2]=> 
       int(1) 
      [3]=> 
       int(6) 
      [4]=> 
       int(150) 
      [5]=> 
       int(249) 
    } 

DEMO

1

,如果你想整数数组转换然后在下面

使用
$array = explode(',', '82,10,1,6,150,249'); 
foreach($array as $index=>$value) { 
    $array[$index] = intval($value); 
} 
0

当你有串数字,你首先要explode此字符串由,分隔符。然后,如果你真的需要int表示 - 每个值转换为int

$packet = '82,10,1,6,150,249'; 
$ints = array_map(
    function($v) { return (int)$v; }, 
    explode(',', $packet) 
); 
var_dump($ints); 
// array(6) { [0]=> int(82) [1]=> int(10) [2]=> int(1) [3]=> int(6) [4]=> int(150) [5]=> int(249) } 
0

像你在你的代码做您可以通过拆分“”然后每个值转换为整数的字符串。

0

您可以尝试通过以下的注释代码提供代替:

<?php 
    $packet   = '82,10,1,6,150,249'; 

    // FIRST EXPLODE THE STRINGS TO FORM AN ARRAY... 
    // USING COMMA (,) AS DELIMITER 
    $arrPacket  = explode(",", $packet);   
    $arrIntPacket = []; 

    // LOOP THROUGH THE RESULT ($arrPacket) 
    // CONVERTING EACH SINGLE ELEMENT TO AN INTEGER 
    foreach($arrPacket as $key=>$strVal){ 
     $arrIntPacket[] = intval($strVal); 
    } 

    // THE ARRAY: $arrIntPacket NOW CONTAIN INTEGER VALUES 
    // OF EACH ELEMENT IN THE ARRAY: 
    var_dump($arrIntPacket);