我正在尝试阻止下面的$implode_demographics inside for循环。
例如,如果我在循环中使用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那么,我如何才能在echo $implode_demographics循环中获得相同的结果呢?
$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, ',');
// this won't work
echo $implode_demographics;
}
}
// this works
// echo $implode_demographics;发布于 2018-07-31 21:18:50
它不起作用,因为在向其中添加数据后,您会一次又一次地内爆相同的数组。
所以在你的第一个echo中,你只有a01,然后你使用a01和a02值,等等。
尝试添加echo $implode_demographics . "\n";,您将看到您有一个var,然后是两个,然后是三个,等等。请参阅此处的示例: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最后一个值,而不是每次从头开始的所有值,输出是:
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
发布于 2018-07-31 21:24:03
事实上,这是工作,你有一个关于内爆的问题。内爆d‘’ont把胶水(,)的最后一个值!尝尝这个。
$implode_demographics = implode($a_r_demographics, ',');
echo $implode_demographics.', ';https://stackoverflow.com/questions/51614172
复制相似问题