gpt4 book ai didi

PHP 唯一地合并数组

转载 作者:行者123 更新时间:2023-12-04 14:35:33 26 4
gpt4 key购买 nike

所以我正在开发一个结合了四个数组的小型 php 应用程序。现在有可能一些可能的数组为空。我尝试了以下解决方案来唯一地合并四个数组。

<?php
$a = [1,2,3,4,5];
$b = null;
$c = [5,4,3,2,1];
$d = [1,2];

$new_array;

if(is_array($a) && is_array($b) && is_array($c) && is_array($d))
{
$new_array = array_unique(array_merge($a,$b,$c,$d));
}else if(is_array($a) && is_array($b) && is_array($c))
{
$new_array = array_unique(array_merge($a,$b,$c));
}else if(is_array($a) && is_array($b))
{
$new_array = array_unique(array_merge($a,$b));
}else{
$new_array = $a;
}

print_r($new_array);
?>

我很快意识到我的代码非常不正常,因为它不能满足所有可能的数组组合,同时排除空变量。

我该如何解决这个问题。确保所有是数组的变量都被合并,那些不是数组的变量被丢弃。谢谢

最佳答案

这个怎么样?将所有数组放在一个数组中,这样您就可以轻松遍历它们,并使用 自定义 in_array() 函数来检查它们是否已经存在?

这种方式的好处是它不会将脚本限制为只有四个数组,因为它会循环遍历您聚集在一起的所有数组。

$a = [1,2,3,4,5];
$b = null;
$c = [5,4,3,2,1];
$d = [1,2];

$array_stack = array($a, $b, $c, $d);

$new_array = array();

foreach($array_stack as $stack){
if(!is_array($stack)) continue;
foreach($stack as $value){
if(!in_array($value, $new_array)) $new_array[] = $value;
}
}

print_r($new_array);

关于PHP 唯一地合并数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19088647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com