阵列字符串值改为int

问题描述:

我有一个这样的数组:阵列字符串值改为int

array (size=3) 
    'money' => string '16' (length=2) 
    'str' => string '45' (length=2) 
    'intl' => string '0' (length=1) 

我想字符串值转换为int这样的:

array (size=3) 
    'money' => int 16 
    'str' => int 45 
    'intl' => int 0 

我试图用的foreach方法:

$newuserattri=[]; 
foreach ($userattri as $key => $var) { 
    $userattri[$key] = (int)$var; 
    $newuserattri[]=$userattri[$key]; 
} 
var_dump($newuserattri); 

但是这样的工作,因为现在我没有数组值名称

array (size=3) 
    0 => int 16 
    1 => int 45 
    2 => int 0 

你真的很接近!你必须将它们与原来的键添加到阵列像这样:

$newuserattri = []; 
foreach ($userattri as $key => $value) { 
    $newuserattri[$key] = (int)$value; 
} 
var_dump($newuserattri); 

更换

$userattri[$key] = (int)$var; 

随着

$newuserattri[$key] = intval($var); 
+0

这并没有解决问题。问题显示数组索引已被转换为整数,而不是该值存在问题。完整的解决方案将有'$ newuserattri [$ key] = $ userattri [$ key];' –

+0

我的错误。 @BobDalgleish是正确的。 – bsguy

+0

您可以编辑您的答案以纳入反馈。您可能会提及该评论作为编辑的原因,以免它看起来毫无根据。然而,你可能想添加一些解释到基本代码的答案。 – Yunnosch