Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数组中的问题使用相同组id中的值替换空值_Php_Arrays_Pointers - Fatal编程技术网

php数组中的问题使用相同组id中的值替换空值

php数组中的问题使用相同组id中的值替换空值,php,arrays,pointers,Php,Arrays,Pointers,我尝试用具有该值的数组替换同一组中数组的值 但是它不能正常工作,你可以在下面的代码中看到为什么 function trace($val) { echo "pre"; print_r($val); echo "pre"; } $rows = array( array('a'=>'33333','b'=>'#3333','group'=>1), array('a'=>'','b'

我尝试用具有该值的数组替换同一组中数组的值 但是它不能正常工作,你可以在下面的代码中看到为什么


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 ) ) 排列 ( [0]=>阵列 ( [a] =>33333 [b] =>#3333 [组]=>1 ) [1] =>阵列 ( [a] => [b] => [组]=>1 ) [2] =>阵列 ( [a] => [b] => [组]=>2 ) [3] =>阵列 ( [a] =>5555 [b] =>#werwe [组]=>2 ) ) 排列 ( [0]=>阵列 ( [a] => [b] => [组]=>1 ) [1] =>阵列 ( [a] => [b] => [组]=>1 ) [2] =>阵列 ( [a] =>5555 [b] =>#werwe [组]=>2 ) [3] =>阵列 ( [a] =>5555 [b] =>#werwe [组]=>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 ) ) 排列 ( [0]=>阵列 ( [a] =>33333 [b] =>#3333 [组]=>1 ) [1] =>阵列 ( [a] =>33333 [b] =>#3333 [组]=>1 ) [2] =>阵列 ( [a] =>5555 [b] =>#werwe [组]=>2 ) [3] =>阵列 ( [a] =>5555 [b] =>#werwe [组]=>2 ) ) 更新:

如果这不起作用,请告诉我另一种原因

$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)
);
创建一个临时变量来保存每个组的总体信息

$groups = array();
然后将每个非空值添加到数组中

foreach ($rows as &$row) {
    if (!isset($groups[$row['group']])) {
        $groups[$row['group']] = array();
    }
    $groups[$row['group']] += array_filter($row);
}
最后,用组的总体信息替换每一行

foreach ($rows as &$row) {
    $row = $groups[$row['group']];
}
输出:

$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)
);
创建一个临时变量来保存每个组的总体信息

$groups = array();
然后将每个非空值添加到数组中

foreach ($rows as &$row) {
    if (!isset($groups[$row['group']])) {
        $groups[$row['group']] = array();
    }
    $groups[$row['group']] += array_filter($row);
}
最后,用组的总体信息替换每一行

foreach ($rows as &$row) {
    $row = $groups[$row['group']];
}

输出:

您能将预期结果添加到原始帖子中吗?我放置了我预期的值您能将预期结果添加到原始帖子中吗?我放置了我预期的值