昨天开发时遇到一个问题,因为前端图形highcharts的数据需要int或者float类型,但是后端传输的是字符串string类型,因此前端图形展示报错。现在需要将展示数据转为数字,但是涉及到的点特别多。如果是单一一处,只需要用一个foreach循环,把键值使用floatval或者intval转一下就行,但是此次共需要修改后端11处,如果每一处都去foreach循环,代码比较冗余。后来学习了array_walk函数,函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
使用此函数后,只需要写一个公用function方法,其它地方使用函数回调方法就行:
array_walk($arr, function stringToFloat(&$arrayVal) { $arrayVal = floatval($arrayVal); });
返回的$arr数组的键值就已经是数字了。function方法可以单独写一个,可以更加美观。
)