2

我有以下数组,我想将每个 [Entry] 值从字符串更改为整数:

数组([0] => 数组([时间] => 06:08:00 [条目] => 250)[1] => 数组([时间] => 08:08:00 [条目] => 230)

我正在尝试这种方式,这似乎会更改循环内的类型,但更改似乎不会在循环外生效。我是这方面的新手,所以我可能忽略了一些东西,而且很可能是一种更简单的方法来实现这一点。

foreach($data as $inner) {
foreach($inner as $key=>$val) {
    if($key == 'Entry') {
        $newval = intval($val);
        $val = $newval;
        echo(gettype($val));//integer
        }
    }
}

echo(gettype($data[0]['Entry'])); //string
4

2 回答 2

2

您没有更改数组中元素的值。

foreach($data as &$inner) {        
        $inner['Entry'] = intval($inner['Entry']);        
}

要修改循环中的数组元素,您必须以$inner& 开头。即该值将通过引用分配。

详情见foreach

于 2013-09-19T22:32:21.690 回答
0

您需要将其重新转换为实际数组。

foreach($data as $dkey => $inner) {
    foreach($inner as $ikey => $val) {
        if ($ikey == 'Entry') {
             $data[$dkey][$ikey] = intval($val);
        }
    }
}
于 2013-09-19T22:31:42.917 回答