我编写了一个函数,用于将String转换为integer(每个循环使用一个)。功能:
function prepare_client_data($data)
{
foreach ($data as $index=>$value)
{
if($index<1) continue;
$data[$index]['3']=(int)($value[$index]['3']);
$data[$index]['18']=(int)($value[$index]['18']);
$data[$index]['20']=(int)($value[$index]['20']);
$data[$index]['22']=(int)($value[$index]['22']);
$data[$index]['25']=(int)($value[$index]['25']);
$data[$index]['30']=(int)($value[$index]['30']);
}
但此函数不起作用,无法将所有字符串转换为int 0
我想知道当我用foreach
做同样的事情时,它会起作用:
$data['3']['20']=(int)($data['3']['20']);
echo $data['3']['20'].'test';
有人能帮我吗。我试着破解它。没有进展。
首先,您缺少一个大括号。这是您需要的解决方案
function prepare_client_data($data) {
foreach ($data as $index => $value) {
if ($index < 1)
continue;
//echo ($value['3']);
$data[$index]['3'] = (int) $value['3'];
$data[$index]['18'] = (int) ($value['18']);
$data[$index]['20'] = (int) ($value['20']);
$data[$index]['22'] = (int) ($value['22']);
$data[$index]['25'] = (int) ($value['25']);
$data[$index]['30'] = (int) ($value['30']);
}
return $data;
}
$data=prepare_client_data($data);
或
function prepare_client_data($data) {
foreach ($data as $index => $value) {
if ($index < 1)
continue;
$data[$index]['3'] = (int) ($data[$index]['3']);
$data[$index]['18'] = (int) ($data[$index]['18']);
$data[$index]['20'] = (int) ($data[$index]['20']);
$data[$index]['22'] = (int) ($data[$index]['22']);
$data[$index]['25'] = (int) ($data[$index]['25']);
$data[$index]['30'] = (int) ($data[$index]['30']);
}
}
只有当你有数值而不是字母时,它才会起作用