【发布时间】:2014-01-21 15:55:15
【问题描述】:
这里是php代码:
$options_schools = array();
$options_schools_deepcopy = array();
if (!empty($schools) && is_array($schools)) {
foreach ($schools as $key => $val) {
$temp_school = $key;
$options_schools[$temp_school]=$key;
}
$options_schools_deepcopy= $options_schools;
}
echo form_dropdown('school', $options_schools_deepcopy, '');
我希望数组 $options_schools_deepcopy 承载数组 $options_schools 的深拷贝值,而不引用它。因此,当数组$options_schools 变为空时,代码中的某处,$options_schools_deepcopy 仍应具有最初从$options_schools 复制的值,而不管在代码中的何处访问它。如何实现?
编辑1:请注意: 正如您从我的代码中看到的那样,我正在尝试在 if-else 条件下将数组 $a 复制到 $b 中。我希望 $b 具有与满足 if-else 时分配的数组 $a 相同的值。我希望 $b 将复制的数组保留在代码中的任何位置,无论它是否满足 if-else 条件,也无论数组 $a 如何更改。
编辑2: if-else 确实成立,但仅在代码的某个点,即当 $options_schools 具有我需要复制到 $options_schools_deepcopy 的所有值时。
【问题讨论】:
-
这可能会为您指明正确的方向。 stackoverflow.com/questions/894814/…
-
使用
$options_schools_deepcopy[]= $options_schools;而不是$options_schools_deepcopy= $options_schools;并放入您的循环中。 -
@Tounu 我试过了。它不起作用。对不起
-
我实际上不明白你的问题。您希望
$options_schools_deepcopy等于$options_scools吗?然后你的代码工作。我看不出你的问题出在哪里。 -
你测试了吗?此代码应该已经为您提供了 2 个您想要的独立数组。