Php 如何按此顺序打印数组?
大家好,请帮忙,我有一个数组包含三个数组,每个数组包含不同数量的字符,第一个数组总是比第二个数组包含更多的字符,依此类推。请注意,两个连续的数组可能具有相同数量的字符检查此示例Php 如何按此顺序打印数组?,php,arrays,printing,Php,Arrays,Printing,大家好,请帮忙,我有一个数组包含三个数组,每个数组包含不同数量的字符,第一个数组总是比第二个数组包含更多的字符,依此类推。请注意,两个连续的数组可能具有相同数量的字符检查此示例 array //called lines ( ['a','b','c','d'], ['e','f','g'], ['h','i'] ); 我尝试迭代主数组,每次打印每个数组的第一个字母,然后将其移出数组,因此第一次我将从第一个数组打印“a”,将其移出数组,然后移至第二个数组,打印“e”,并将其移出数组,
array //called lines
(
['a','b','c','d'],
['e','f','g'],
['h','i']
);
我尝试迭代主数组,每次打印每个数组的第一个字母,然后将其移出数组,因此第一次我将从第一个数组打印“a”,将其移出数组,然后移至第二个数组,打印“e”,并将其移出数组,移动到第三个并打印“h”移位,然后返回并执行相同的操作,直到所有的移位都为空。因此,我如何才能做到这一点?这里是输出应该是“aehbficgd”的样子。抱歉,如果问题太长,谢谢
while(!empty($lines))
{
$counter = 0;
echo $lines[$counter][0];
array_shift($lines[$counter]);
$counter++;
if($counter == count($lines))
{
$counter = 0;
}
}
这个怎么样
$lines = array
(
['a','b','c','d'],
['e','f','g'],
['h','i']
);
$continue = true;
while($continue)
{
$continue = false;
foreach($lines as $key => $line) {
if(!empty($line)) {
echo array_shift($line);
$lines[$key] = $line;
$continue = true;
}
}
}
您可以在这里试用两个问题:
while(array_filter($lines)) {
$c = ($c != count($lines) - 1) ? $c + 1 : 0;
echo array_shift($lines[$c]);
}
$lines
,因为它将包含带有空数组的元素,所以不会为空()
count($lines)-1,因为您的最高键是2,而count()
是3