【问题标题】:Merging arrays even if they don't exist with PHP合并数组,即使它们在 PHP 中不存在
【发布时间】:2013-03-16 18:50:29
【问题描述】:

我目前有 3 个数组,$A、$B 和 $C,我需要将它们合并到一个名为 $allArrays 的单个数组中。

我知道我可以用 array_merge 做到这一点

$allArrays = array_merge($A,$B, $C);

但有时并非所有 3 个数组都会存在。根据我正在处理的这个站点的用户是否激活了一个可以创建数组的选项,有时我可能只会得到三个中的一个、三个中的 2 个或全部 3 个。

因此,如果用户 1 激活了创建数组 $A 和 $B 的选项,而用户 2 激活了创建数组 $A 和 $C 的选项,则无论其中一个、两者或所有三个都需要合并到 $allArrays。

我该怎么做?目前,如果我没有激活所有三个数组,allArrays 会返回空白和空,0。

我觉得我可以通过多个 if 语句轻松实现这一点,以查看是否所有数组都存在,但我觉得这有点过分了。我是 PHP 新手,所以很难找到要搜索的内容。

感谢您的帮助!

【问题讨论】:

  • 为什么不在之前创建所有 3 个数组为空,如果选项合适,请将数据放入其中
  • 这就是我的想法,但不知道这是正确的还是最简单的方法。但为了把事情做好,我认为这会奏效。
  • 或者你可以使用 isset()
  • 是的,正如我所见,您可以将所有三个数组都创建为空或检查它们是否已设置 - 但我认为没有一种解决方案比另一种更好
  • 由于我计划添加几十个选项,它最终会变得代码繁重,但现在,它会起作用。测试站点需要足够简单,以便我将其传递给开发人员。哈。

标签: php arrays merge


【解决方案1】:

在合并之前尝试简单的类型转换..

$A = $B = $C = null;
$allArrays = array_merge((array) $A, (array) $B, (array) $C);

【讨论】:

  • 为什么要设置null,然后进行类型转换,而不是简单的array()
  • But sometimes not all 3 arrays will exist 只是举了一个例子,如果它们不存在......
  • 我相信他的建议是:$A = $B = $C = array(); 然后没有类型转换。
  • @MichaelRushton 在某些情况下可能仍会失败codepad.viper-7.com/GJ3Shu
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 1970-01-01
相关资源
最近更新 更多