我正试图在下面的循环中停止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....
那么,如何在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
答案 0 :(得分:1)
它不起作用,因为在其中添加数据后,您一次又一次地内陷同一数组。
因此,在您的第一个echo
中只有a01
,然后以a01
和a02
的值向内爆,等等。
尝试添加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.', ';