PHP将数组中的字符串转换为int

时间:2014-11-26 10:46:01

标签: javascript php arrays

我有一个数组:

array(3) { [0]=> array(2) { [0]=> string(3) "ABC" [1]=> string(3) "744" } [1]=> array(2) { [0]=> string(3) "DEF" [1]=> string(2) "86" } [2]=> array(2) { [0]=> string(3) "GHI" [1]=> string(1) "2" } } 

现在我想将数字的字符串转换为整数。 Ex 744是字符串,但它应该是整数。我在搜索论坛后尝试了一些功能,但没有成功。 后来我必须在json_encode函数中使用这个数组,在javascript中它需要整数中的数值。

8 个答案:

答案 0 :(得分:0)

只需使用intval(string);

参考:http://php.net/manual/en/function.intval.php

编辑:

如果你将转换整个阵列它将无法正常工作。 然后你必须测试非int值,以便它不会被转换。

对于非int值,

inval($value)将返回0,那么您必须测试该值是0还是非int值。

如果你总是将int值作为数组中的第二个索引,那么只需使用intval($value);

foreach ($a as &$ar) {
  $ar[1] = intval($ar[1]);
} 

答案 1 :(得分:0)

您可以使用intval函数将字符串转换为整数:

$integervalue = intval($stringvalue);

答案 2 :(得分:0)

您可以像intval一样使用array_walk_recursive,与建议的其他答案一样:

array_walk_recursive($array, function(&$item) {
    if (is_numeric($item)) {
        $item = intval($item);
    }
});

答案 3 :(得分:0)

试试这个

$a = array( 0=>  array( 0=> "ABC" ,1=> "744" ) ,1=>  array( 0=>  "DEF",1=>  "86" ),  2=>    array( 0=> "GHI", 1=> "2" ) );
foreach ($a as $i)
echo intval($i[1]);

答案 4 :(得分:0)

如果您需要检查值是否可以转换为int - 请参阅此question 之后它只使用foreach for循环数组,如果当前迭代值可以转换为int - 使用intval。

示例 -

$a = array('test', '11', 'abc', '14554');
echo "<pre>";
var_dump($a);
echo "</pre>";
foreach ($a as &$item) {
if (ctype_digit($item)) {
    $item = intval($item);
}
}
echo "<pre>";
var_dump($a);
echo "</pre>";

答案 5 :(得分:0)

$variable = array(3) { 
        [0]=> array(2) { 
                        [0]=> string(3) "ABC" 
                        [1]=> string(3) "744" } 
        [1]=> array(2) { 
                         [0]=> string(3) "DEF" 
                         [1]=> string(2) "86" } 
        [2]=> array(2) { 
                         [0]=> string(3) "GHI" 
                         [1]=> string(1) "2"  }
    } 

foreach($variable as $key=>$arrayStrings)
    foreach($arrayStrings as $innerKey=>$string)
           if(is_numeric($string))
              $variable[$key][$innerKey] = intval($string);

答案 6 :(得分:0)

您可以按如下方式实现递归函数,它将采用任意大小和维度的数组。

 function convertArray(myArray){
    convertedArray=array();
    foreach(myArray as key=>value){
        if(is_array(value)){
            convertedArray[key] = convertArray(value);      
        }else{
            temp = intval(value);
            if(temp==0){
                convertedArray[key] = value;
            }else{
                convertedArray[key] = temp;
            }       
        }
    }
    return convertedArray;
 }

答案 7 :(得分:0)

稍后,我必须在json_encode()函数中使用此数组,并且在我的javascript处理中,数字值必须为整数类型。

您是否已检查JSON Predefined Constants

$result = json_encode($array, JSON_NUMERIC_CHECK);

JSON_NUMERIC_CHECK(int)

将数字字符串编码为数字。自PHP 5.3.3起可用。