字符串到整数php的数组

时间:2012-01-22 19:23:14

标签: php arrays string integer

我想将一个字符串(例如1,2,3,4,5,6)转换为php中的整数数组? 我找到的函数只能访问字符串的第一个字符,例如1。 如何将整个字符串转换为数组?

function read_id_txt()
{

        $handle_file = fopen("temporalfile.txt", 'r'); 

        $i=0;

        while ($array_var[$i] = fgets($handle_file, 4096)) { 
            echo "<br>";
            print_r($array_var[i]);
            $i++;
        }

        fclose($handle_file);   

        $temp=explode(" ", $array_var[0]);      

        return $temp;   


}

5 个答案:

答案 0 :(得分:24)

使用PHP的explode

$str = "1,2,3,4,5,6";
$arr = explode("," $str); // array( '1', '2', '3', '4', '5', '6' );

foreach ($arr AS $index => $value)
    $arr[$index] = (int)$value; 

// casts each value to integer type -- array( 1, 2, 3, 4, 5, 6 );

根据Tim Cooper的建议,使用array_walk比上述循环更简单:

array_walk($arr, 'intval');

答案 1 :(得分:9)

return array_map('intval', explode(",", '1,2,3,4,5,6,7,8,9'));

答案 2 :(得分:3)

explode(",",'1,2,3,4,5,6,7,8,9');

http://www.php.net/manual/en/function.explode.php

答案 3 :(得分:3)

以上答案可能会返回非数字值

array_walk&amp; array_map with intval

两个返回的数组都被非数字值污染。

$string = ',g,6,4,3,f,32,a,';
$array = explode(',', $string);
array_walk($array, 'intval');
$arrayMap = array_map('intval', $array);
var_dump($array);
var_dump($arrayMap);
/*
     array(9) {
      [0]=>
      string(0) ""
      [1]=>
      string(1) "g"
      [2]=>
      string(1) "6"
      [3]=>
      string(1) "4"
      [4]=>
      string(1) "3"
      [5]=>
      string(1) "f"
      [6]=>
      string(2) "32"
      [7]=>
      string(1) "a"
      [8]=>
      string(0) ""
    }
 */

array_filter只返回数值

$string = ',g,6,4,3,f,32,a,';
$array = explode(',', $string);
$numericOnlyArray = array_filter($array,'is_numeric');

var_dump($numericOnlyArray);

/*
    result:
    array(4) {
      [2]=>
      string(1) "6"
      [3]=>
      string(1) "4"
      [4]=>
      string(1) "3"
      [6]=>
      string(2) "32"
    }
*/

仅获取整数

$string = ',g,6,4,3,f,32,a,';
$array = explode(',', $string);
$result = array_map('intval', array_filter($array, 'is_numeric'));

var_dump($result);

/*
    result:
    array(4) {
      [2]=>
      int(6)
      [3]=>
      int(4)
      [4]=>
      int(3)
      [6]=>
      int(32)
    }
    }
*/

答案 4 :(得分:-3)