【发布时间】:2018-09-01 15:15:21
【问题描述】:
有人知道这里发生了什么吗?
让我们来看这段非常简单的代码:
$p_id = array();
foreach($opp->participants as $party) {
echo "ID value from data:" . var_dump($party->id) . "<br>";
echo "Base array:" . var_dump($p_id) . "<br>";
$p_uuid = array();
$p_assignment_id = array();
$p_id = array_push($p_id, "$party->id");
echo "Dump array result:" .var_dump($p_id) . "<br>";
}
这是我从中得到的输出(是的,这也是输出的格式):
int(295) ID value from data:<br>
array(0) { } Base array:<br>
int(1) Dump array result:<br>
int(298) ID value from data:<br>
array(0) { } Base array:<br>
int(1) Dump array result:<br>
int(301) ID value from data:<br>
array(0) { } Base array:<br>
int(1) Dump array result:<br>
这显然是一个菜鸟问题,但老实说我不知道为什么输出看起来像这样。
如果我使用print_r,这是我得到的结果:
295 ID value from data:1<br>
Array ( ) Base array: 1<br>
1 Dump array result: 1<br>
298 ID value from data:1<br>
Array ( ) Base array: 1<br>
1 Dump array result: 1<br>
301 ID value from data:1<br>
Array ( ) Base array: 1<br>
1 Dump array result: 1<br>
我希望看到的是来自$party->id 的 ID 值数组,因此$p_id 的print_r 应该会产生类似于Array(295, 298, 301) 的结果。
结果是1。不是array(1)。只需1。
为了更清楚,这里提取的数据甚至没有 1 作为 id。所以它甚至不应该存在。
我已经包含了print_r 和var_dump 结果,因此您可以看到原始调试输出。
【问题讨论】:
-
请指定预期输出
-
你的目标是什么输出?如果您不想在值周围进行装饰,请删除 var_dump() 和 print_r() 位,这样您就可以获得变量的值。如果您想要其他东西,请向我们展示您想要的输出?
-
party->id != 1 ?
-
array_push返回 true (1),因为它成功了。您无需将$p_id设置为array_push。 -
将行改为
array_push($p_id, "$party->id");
标签: php arrays variable-assignment