如何将一串数字转换为数组?

时间:2015-07-08 13:28:36

标签: php arrays string

我有一个字符串,例如1398723242。我正在尝试检查此字符串并获取奇数,在这种情况下为13973

我遇到了如何将此字符串放入数组的问题。将字符串放入数组后,我知道我必须遍历数组,如下所示:

foreach($array as $value){
    if($value % 2 !== 0){
        echo $value;
    }
}

所以可以在第一部分帮助任何正文"如何将上面的字符串放入数组中以便我可以评估上面循环中的每个数字?"

6 个答案:

答案 0 :(得分:5)

这应该适合你:

只需使用str_split()将字符串拆分为数组即可。然后,您可以使用array_filter()过滤偶数。 e.g。

value

输出:

<?php

    $str = "1398723242";
    $filtered = array_filter(str_split($str), function($v){
        return $v & 1;
    });
    echo implode("", $filtered);

?>

答案 1 :(得分:2)

Array map是您的功能(与split混合)

$array  = array_map('intval', str_split($number));
foreach($array as $value){
    if($value % 2 !== 0){
        echo $value;
    }
}

答案 2 :(得分:1)

使用str_split() http://www.php.net/manual/en/function.str-split.php

$string = "1398723242";
$array = str_split($string);
foreach($array as $value){
    if($value % 2 !== 0){
        echo $value;
    }
}

答案 3 :(得分:1)

你必须知道字符串是否是字符数组。所以你可以迭代它:

<?php
$string = "1398723242";
for($i=0; $i < strlen($string); ++$i){
    if($string[$i]=='....'){
       $string[$i] = ''; // Just replace the index like this
    }  
}
?>

答案 4 :(得分:1)

如果您想要字符串作为结果,请不要转换为数组

$str = "1398723242";
echo preg_replace('/0|2|4|6|8/','', $str); //13973

或者,更快

echo str_replace(array(0,2,4,6,8),'', $str); //13973

答案 5 :(得分:0)

$str    =   '1398723242';

$strlen = strlen($str);// Get length of thr string
$newstr;
for($i=0;$i<$strlen;$i++){ // apply loop to get individual character
    if($str[$i]%2==1){ // check for odd numbers and get into a string
        $newstr .=  $str[$i]; 
    }
}
echo $newstr;