如何解决PHP对N个数组使用array_merge
我想将几(n)个表分组为一个大表。例子:
$tab1 = array("test0","test1");
$tab2 = array("test2","test3");
$tab3 = array("tes..","....");
但是例如有10个表。不用写
$result = array_merge($tab1,$tab2,$tab3 --> $tab10);
该算法应自行执行此操作,但我承认我迷路了。我以为我会递归地做。
如果有人会怎么做,谢谢
解决方法
可以使用参数array_merge()
的拆包(或splat运算符)简化将...
与一个主数组中的所有数组一起使用的情况。
$tab[] = array("test0","test1");
$tab[] = array("test2","test3");
$tab[] = array("test4","test3");
print_r(array_merge(...$tab));
,
我将从不使用数字变量名称开始: 相反,我使用一个数组:
<?php
$tab[] = array("test0","test3");
?>
下一步:您可以遍历它们进行合并
<?php
$result = array();
for($i=0;$i<count($tab);$i++) {
$result = array_merge($result,$tab[i]);
}
?>
,
我想到一件事,它不是最漂亮的,但它可以工作。无需更改阵列名称。
它检查$$tab
,它基本上是一个以'tab'
开头并以我们递增的$i
结尾的变量。然后将它们一一合并。
<?php
$tab1 = array("test0","test1");
$tab2 = array("test2","test3");
$tab3 = array("tes..","....");
$i = 1;
$tab = 'tab' . $i;
$data = [];
while (isset($$tab)) {
$data = array_merge($data,$$tab);
$i++;
$tab = 'tab' . $i;
}
print_r($data);
这是输出:
Array ( [0] => test0 [1] => test1 [2] => test2 [3] => test3 [4] => tes.. [5] => .... )
,
不要引入您不“使用”的变量:
$tables = [];
$tables[] = ["test0","test1"];
$tables[] = ["test2","test3"];
$tables[] = ["tes..","...."];
$mergedTables = [];
foreach ($tables as $table) {
$mergedTables = array_merge($tables,$table);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。