1
我尝试用同一组中的数组替换值,但它的值不正确,您可以在下面的代码中看到为什么?php数组中的问题用同一组ID替换空值
function trace($val)
{
echo "pre";
print_r($val);
echo "pre";
}
$rows = array(
array('a'=>'33333','b'=>'#3333','group'=>1),
array('a'=>'','b'=>'','group'=>1),
array('a'=>'','b'=>'','group'=>2),
array('a'=>'5555','b'=>'#werwe','group'=>2)
);
trace($rows);
$oldGroupId = -1;
foreach($rows as &$row)
foreach($row as $column=>$fieldValue)
{
if($row['group']!=$oldGroupId)
${$row['group']}[$column]=0;
if(!is_null($row[$column] ))
${$row['group']}[$column]=$row[$column];
//@ in this place try to point to my dynamick variable pointer for change if change value frome previuse all value in array cahnge
$row[$column] = & ${$row['group']}[$column];
}
trace($rows);
?>
输出值:
Array ( [0] => Array ( [a] => 33333 [b] => #3333 [group] => 1 ) [1] => Array ( [a] => [b] => [group] => 1 ) [2] => Array ( [a] => [b] => [group] => 2 ) [3] => Array ( [a] => 5555 [b] => #werwe [group] => 2 ) ) Array ( [0] => Array ( [a] => [b] => [group] => 1 ) [1] => Array ( [a] => [b] => [group] => 1 ) [2] => Array ( [a] => 5555 [b] => #werwe [group] => 2 ) [3] => Array ( [a] => 5555 [b] => #werwe [group] => 2 ) )
价值预期:
Array ( [0] => Array ( [a] => 33333 [b] => #3333 [group] => 1 ) [1] => Array ( [a] => 33333 [b] => #3333 [group] => 1 ) [2] => Array ( [a] => 5555 [b] => #werwe [group] => 2 ) [3] => Array ( [a] => 5555 [b] => #werwe [group] => 2 ) )
更新:
如果不工作,请告诉我这个原因的另一种方式?
能否请您预期的结果添加到原来的职位? – acm 2011-01-19 13:58:17