Php 内爆()数组并在两个元素后换行
我希望回传数组中以逗号分隔的元素,例如:Php 内爆()数组并在两个元素后换行,php,arrays,foreach,newline,implode,Php,Arrays,Foreach,Newline,Implode,我希望回传数组中以逗号分隔的元素,例如: 元素1、元素2、元素3、元素4、元素5、元素6 然而,为了保持回显元素的整洁,我可能需要在每行的每一秒元素之后换一行,例如 Element1, Element2, Element3, Element4, Element5, Element6 正如我现在所做的: <?php $labels = Requisitions::getLabelNames($id); foreach($labels as $label) { $labels_ar
元素1、元素2、元素3、元素4、元素5、元素6
然而,为了保持回显元素的整洁,我可能需要在每行的每一秒元素之后换一行,例如
Element1, Element2,
Element3, Element4,
Element5, Element6
正如我现在所做的:
<?php
$labels = Requisitions::getLabelNames($id);
foreach($labels as $label) {
$labels_array[] = $label['name'];
}
echo implode(' ,', $labels_array);
?>
很明显,我们得到了:
元素1、元素2、元素3、元素4、元素5、元素6
那么,如何使用
内爆()
或其他方法在每一行的第二个元素之后换行?未经测试,但类似的方法应该可以工作
$i = 1;
foreach($labels as $label) {
echo $label;
// add a comma if the label is not the last
if($i < count($labels)) {
echo ", ";
}
// $i%2 is 0 when $i is even
if($i%2==0) {
echo "<br>"; // or echo "\n";
}
$i++;
}
$i=1;
foreach($labels作为$label){
echo$标签;
//如果标签不是最后一个,请添加逗号
如果($i”;//或echo“\n”;
}
$i++;
}
未经测试,但类似的方法应该可以工作
$i = 1;
foreach($labels as $label) {
echo $label;
// add a comma if the label is not the last
if($i < count($labels)) {
echo ", ";
}
// $i%2 is 0 when $i is even
if($i%2==0) {
echo "<br>"; // or echo "\n";
}
$i++;
}
$i=1;
foreach($labels作为$label){
echo$标签;
//如果标签不是最后一个,请添加逗号
如果($i”;//或echo“\n”;
}
$i++;
}
为了好玩:
$labels_array=array("Element 1","Element 2","Element 3","Element 4","Element 5","Element 6");
echo implode(",\n",array_map(function($i){ // change to ",<br />" for HTML output
return implode(", ",$i);
},array_chunk($labels_array,2)));
$labels_array=数组(“元素1”、“元素2”、“元素3”、“元素4”、“元素5”、“元素6”);
echo内爆(“,\n”,数组映射(函数($i){//更改为“,
”,用于HTML输出
返回内爆(“,”,$i);
},数组块($labels\u array,2));
为了幻想:
$labels_array=array("Element 1","Element 2","Element 3","Element 4","Element 5","Element 6");
echo implode(",\n",array_map(function($i){ // change to ",<br />" for HTML output
return implode(", ",$i);
},array_chunk($labels_array,2)));
$labels_array=数组(“元素1”、“元素2”、“元素3”、“元素4”、“元素5”、“元素6”);
echo内爆(“,\n”,数组映射(函数($i){//更改为“,
”,用于HTML输出
返回内爆(“,”,$i);
},数组块($labels\u array,2));
除非您需要用于其他目的的数组,否则这只是构建字符串
<?php
$labels = Requisitions::getLabelNames($id);
$s='';
$i=0;
$l=count($labels);
foreach($labels as $label){
$s.=$label['name'];
// Append delimeter. Makes sure every second, and the last one, will be a line break
$s.=((++$i%2)&&($l!=$i))?' ,':"\n";
}
echo $s;
?>
如果您确实需要某个数组,请先创建它,然后根据需要修改上面的内容。除非您需要其他数组,否则这只会生成字符串
<?php
$labels = Requisitions::getLabelNames($id);
$s='';
$i=0;
$l=count($labels);
foreach($labels as $label){
$s.=$label['name'];
// Append delimeter. Makes sure every second, and the last one, will be a line break
$s.=((++$i%2)&&($l!=$i))?' ,':"\n";
}
echo $s;
?>
如果您确实需要数组,请先创建它,然后根据需要修改上面的内容。您可以使用foreach来实现它,我正在为您粘贴代码,这将为您提供所需的输出
<?php
$labels = array("Element1", "Element2", "Element3", "Element4", "Element5","Element6");
$key = 1;
$lastkey = sizeof($labels);
foreach($labels as $value)
{
if($key%2)
{
if($key==$lastkey)
{
echo $value;
}
else
{
echo $value.",</br>";
}
}
else
{
if($key==$lastkey)
{
echo $value."</br>";
}
else
{
echo $value.",</br>";
}
}
$key++;
}
?>
您可以使用foreach来实现它,我正在为您粘贴代码,这将为您提供所需的输出
<?php
$labels = array("Element1", "Element2", "Element3", "Element4", "Element5","Element6");
$key = 1;
$lastkey = sizeof($labels);
foreach($labels as $value)
{
if($key%2)
{
if($key==$lastkey)
{
echo $value;
}
else
{
echo $value.",</br>";
}
}
else
{
if($key==$lastkey)
{
echo $value."</br>";
}
else
{
echo $value.",</br>";
}
}
$key++;
}
?>
保留一个计数器。当计数器%2==0
添加\n
时,可能会有所帮助,具体取决于您下一步要做什么。@路人谢谢,它会返回数组
。但我只想显示数组的值。@watkib请检查下面的答案。保留一个计数器。当计数器%2==0
添加\n
时,可能会有所帮助,具体取决于您下一步要做什么。@路人谢谢,它会返回数组
。但是我只想显示数组的值。@watkib请检查下面的答案。我已经读到,为了测试奇偶校验,使用$I&&1
要更快,它必须是&1,而不是&1当两边都是正数时,作为布尔运算符将始终返回true当且仅当设置了最低位时,1将返回1。$i&1这是$i%2的更快版本,但我不知道您的情况是否需要它。尤其是当你是一个初学者的时候,它有点难理解。如果您想知道,您可以在这里阅读更多信息:(“$i&1”是1,如果$i是奇数的话)我已经阅读过,为了测试奇偶校验,使用$i&&1
要更快,它必须是&1,而不是&1当两边都是正数时,作为布尔运算符将始终返回true当且仅当设置了最低位时,1将返回1。$i&1这是$i%2的更快版本,但我不知道您的情况是否需要它。尤其是当你是一个初学者的时候,它有点难理解。如果你想知道,你可以在这里阅读更多信息:(“$i&1”是1,如果$i是奇数的话)$str=substr($str,0,-2)代码>应该是足够的是的,复制粘贴,知道有一个原因,在我这边的一个特定的原因…确保用户可以找出如何回显$str<代码>$str=substr($str,0,-2)代码>应该是足够的是的,复制粘贴,知道有一个原因,在我这边的一个特定的原因…确保用户可以找出如何回显$str;谢谢,这也行。也学到了一些新的PHP\u EOL
有趣的东西。谢谢你,这也一样。我也学到了一些新的PHP_EOL
有趣的东西。我现在如何使用您的解决方案在最后一行的最后一个元素后面没有逗号?只需将else{echo$value.”,“;}
替换为else{echo$value.”“;}
@watkib我编辑的代码。请检查它,它将解决您的打印逗号问题。我现在如何使用您的解决方案在最后一行的最后一个元素后没有逗号?只需将else{echo$value.”,“;}
替换为else{echo$value.”“;}
@watkib I-edited code。请检查它,它将解决您的打印逗号问题