2017-09-01 52 views
0

我有一個這樣的數組:陣列字符串值改爲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 

回答

3

你真的很接近!你必須將它們與原來的鍵添加到陣列像這樣:

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

更換

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

隨着

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

這並沒有解決問題。問題顯示數組索引已被轉換爲整數,而不是該值存在問題。完整的解決方案將有'$ newuserattri [$ key] = $ userattri [$ key];' –

+0

我的錯誤。 @BobDalgleish是正確的。 – bsguy

+0

您可以編輯您的答案以納入反饋。您可能會提及該評論作爲編輯的原因,以免它看起來毫無根據。然而,你可能想添加一些解釋到基本代碼的答案。 – Yunnosch