【发布时间】:2017-08-27 00:10:33
【问题描述】:
我发现了关于我的问题的类似问题,尽管答案包含的建议只完成了我需要的一半 - 他们都没有做到。
我需要开发一个可以同时处理这两种情况的函数:
- 未知数量的数组,并且...
- 不同的长度和...
- 交替合并数组(添加为编辑)
我正在尝试根据我发现的两个函数编写一个函数,并相信我只需要弄清楚 while() ,但我完全被难住了。我似乎无法找到任何在其条件中使用数组的 while 循环示例……如果您遵循的话。
function alternately_merge_arrays() {
$arrays = func_get_args();
$new_array = array();
//
while( count($array) in $arrays is > 0 ) {
//
foreach($arrays as $array) {
if ( count($array) > 0 )
$new_array[] = array_shift($array);
}
}
return $new_array;
}
var_dump(alternately_merge_arrays(array(1,4), array(2,5,7), array(3,6,8,9));
当然,我可能完全错了,它需要不是 while() 循环。我很酷使用 for() 和 foreach(),但如果第一个数组是最短的,它们会停止循环,而 while() 应该继续......
编辑:我需要的输出是:
array(1,2,3,4,5,6,7,8,9)
【问题讨论】:
-
为什么不直接执行
while (count($arrays) > 0)并删除内部循环中/变为空的数组? -
嗨@Sami。感谢您表现出兴趣。
while(count($arrays) > 0)只计算提供的数组的数量,而不是它们的长度......这是我需要的。 -
是的,但是如果您删除内部循环中的空数组,那么最后它本身就会变为空并且您知道要停止。在此之前,它将包含您可以循环的非空数组。
-
嗨@KIKOSoftware ...所以没有办法做到这一点?没有指向替代方法的指针?谢谢你的兴趣顺便说一句
-
嗨@SamiKuhmonen - 哈!当然!我明白你的意思...谢谢,我会继续努力的。
标签: php arrays while-loop do-while