阵列字符串值改为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);
这并没有解决问题。问题显示数组索引已被转换为整数,而不是该值存在问题。完整的解决方案将有'$ newuserattri [$ key] = $ userattri [$ key];' –
我的错误。 @BobDalgleish是正确的。 – bsguy
您可以编辑您的答案以纳入反馈。您可能会提及该评论作为编辑的原因,以免它看起来毫无根据。然而,你可能想添加一些解释到基本代码的答案。 – Yunnosch