2017-01-26 4 views
0

配列があります。次のようになります。PHP:arrayのすべての数値フィールドをinsまたはfloatにそれぞれ変換してください。

[ 
    { 
     "id": "2", 
     "number": "2", 
     "debtor_number": null, 
     "name": "Ziegler", 
     "firstname": "Lisa",    
     "credit": "0.00", 
    }, 
    { 
     "id": "3", 
     "number": "3", 
     "debtor_number": null, 
     "name": "Ziegler", 
     "firstname": "Lisa",    
     "credit": "51.20", 

が働かがあります(私は手動でない意味)をそれぞれint型に2または51.20などのすべての数値filedsを変換して浮かびますか?お使いのアレイの深さは変えることができ、あなたはそれがすべてのレベルの仕事をしたい場合は

   foreach ($array as &$val) { 
        foreach ($val as &$value) { 
         if(is_numeric($value)){ 
          if(ctype_digit($value)) 
           $value= (int)$value; 
          else 
           $value = (float)$value; 
         } 
        } 
       } 

答えて

1

、あなたが使用することができarray_walk_recursive()

手動で私は、このようにそれを行う

array_walk_recursive($arr, function(&$val) { 
    if (is_numeric($val)) { 
     if (ctype_digit($val)) { 
      $val= (int) $val; 
     } else { 
      $val = (float) $val; 
     } 
    } 
}); 

example

関連する問題