我想将一个字符串(例如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;
}
答案 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');
答案 3 :(得分:3)
以上答案可能会返回非数字值
两个返回的数组都被非数字值污染。
$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) ""
}
*/
$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)