0

我有这个代码:

foreach($rec as $rk => $r){
    $parrecid = 0;
    $id = 0;
    if ($rk=='PARENT_RECORD_ID'){
        echo $rk . ' = ' . $r . '<br>';
        $parrecid == $r;
    }
    if ($rk=='ID'){
        echo $rk . ' = ' . $r . '<br>';
        $id == $r;
    }

}
    echo 'pushing id = ' . $id . ' parrecid=' . $parrecid . '<br>';
    array_push($arrobj, $id, $parrecid);

理论上,当 $rk = 'PARENT_RECORD_ID 时,应该填充 $parrecid 值。$id 的情况相同,如果 $rk = 'ID' 那么......你得到了图片。然而,这永远不会发生。两个值都保持为 0。任何想法为什么?

4

4 回答 4

2

首先,使用=其他答案中提到的分配。

第二件事是,在你设置你的$parrecidand$id在你的循环之后,你不会立即停止你的循环,所以你也会在下一个循环运行时再次覆盖它们:$parrecid = 0; $id = 0;,它们又是0

一种解决方案是在循环外设置变量:

$parrecid = 0;
$id = 0;
foreach($rec as $rk => $r){
    ...
}
于 2013-05-27T20:52:49.737 回答
1

你的变量 $parrecid = 0; 和 $id = 0; 是用 for 循环定义的,因此更新的值将不可读,除非它们是在 for 循环之前定义的,并且在分配值时使用正确的分配(= 而不是 ==)运算符。

于 2013-05-27T20:39:19.643 回答
1

首先从循环中取出 $parrecid 和 $id 的初始化。
其次,不要使用 == 将值放入变量中。$parrecid = $r;而不是$parrecid == $r;
您的代码应如下所示:

$parrecid = 0;
$id = 0;

foreach($rec as $rk => $r){
    if ($rk=='PARENT_RECORD_ID'){
        echo $rk . ' = ' . $r . '<br>';
        $parrecid = $r;
    }
    if ($rk=='ID'){
        echo $rk . ' = ' . $r . '<br>';
        $id = $r;
    }

}
于 2013-05-28T01:23:13.970 回答
0

用于=赋值而不是==. 此外,在循环之外声明这些变量foreach,否则它们将在每次循环调用时被重置。

于 2013-05-27T20:34:14.140 回答