我有一个数组:
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中它需要整数中的数值。
答案 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起可用。