Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何按此顺序打印数组?_Php_Arrays_Printing - Fatal编程技术网

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