如何使用数组停止PHP循环内的循环字符串

时间:2018-07-31 13:08:54

标签: php arrays string for-loop

我正试图在下面的循环中停止docker run -d --name redis -v <data-dir>:/data -p 6379:6379 redis

例如,如果我在循环中使用$implode_demographics,那么我将得到:

echo $implode_demographics

但是,如果我在外部使用此字符串,则输出有效。

a01a01,a02a01,a02,a03a01,a02,a03,a04a01,a02,a03,a04,a05a01,a02,a03,a04,a05,a06a01,a02,a03,a04,a05,a06,a07a01,a02,a03,a04,a05,a06,a07,a08a01,a02,a03,a04,a05,a06,a07,a08,a09a01,a02,a03,a04,a05,a06,a07,a08,a09,a10a01,a02,a03,a04,a05,a06,a07,a08,a09,a10,a11a01,a02,a03,a04,a05,a06,a07,a08,a09,a10,a11,b01a01,a02,a03,a04,a05,a06,a07,a08,a09,a10,a11,b01,b02a01,a02,a....

Online PHP test

那么,如何在a01,a02,a03,a04,a05,a06,a07,a08,a09,a10,a11,b01,b02,b03,c01,c02,c03,c04,c05,c06,c07,c08,c09,c10,c11,c12,c13 的for循环中获得相同的结果?

echo $implode_demographics

2 个答案:

答案 0 :(得分:1)

它不起作用,因为在其中添加数据后,您一次又一次地内陷同一数组。

因此,在您的第一个echo中只有a01,然后以a01a02的值向内爆,等等。

尝试添加echo $implode_demographics . "\n";,您将看到有一个变量,然后是两个,然后是三个,依此类推。请参见此处的示例:https://3v4l.org/WrCgJ

因此,如果您想echo里面的每个值,只需执行:

<?php

$a_l_demographics = [11,3,13];
$a_p_demographics  = ['a','b','c'];
$a_r_demographics = [];
$c_demographics_values = array();
$a_c_demographics = min(count($a_l_demographics), count($a_p_demographics));

for ($i = 0; $i < $a_c_demographics; $i++) {
    for ($j = 1; $j <= $a_l_demographics[$i]; $j++) {
        $a_r_demographics[] = $a_p_demographics[$i] . str_pad($j, 2, 0, STR_PAD_LEFT);

        $implode_demographics = implode($a_r_demographics, ',');

        // You echo only the last value
        echo $a_p_demographics[$i] . str_pad($j, 2, 0, STR_PAD_LEFT);

        // If it's not the last loop : you add a `,`
        if (!($i == ($a_c_demographics - 1) && $j == $a_l_demographics[$i]))
            echo ",";
    }
}

这样,您每次echo只会{last}值,而不是每次都从开头开始的所有值,输出是:

a01,a02,a03,a04,a05,a06,a07,a08,a09,a10,a11,b01,b02,b03,c01,c02,c03,c04,c05,c06,c07,c08,c09,c10,c11,c12,c13

在此处查看代码:https://3v4l.org/MEnGe

答案 1 :(得分:1)

实际上,这是行得通的,您对内爆有疑问。放开胶水(,)到最后一个值! 试试这个。

$implode_demographics = implode($a_r_demographics, ',');
echo $implode_demographics.', ';