Php 干式-将一定数量的元素添加到数组的末尾,直到它';s计数达到特定整数
由于我使用的是一个相当旧的库,所以我需要将数组分为五块。因此,如果我的数组有9个元素,我需要将其分块(5和4),然后我需要在最后一个数组中添加一个空白元素,使其达到5 我写了一些非常糟糕的代码,但我知道它违背了枯燥的原则,因为它计算数量,并使用多个Php 干式-将一定数量的元素添加到数组的末尾,直到它';s计数达到特定整数,php,arrays,Php,Arrays,由于我使用的是一个相当旧的库,所以我需要将数组分为五块。因此,如果我的数组有9个元素,我需要将其分块(5和4),然后我需要在最后一个数组中添加一个空白元素,使其达到5 我写了一些非常糟糕的代码,但我知道它违背了枯燥的原则,因为它计算数量,并使用多个if语句将正确数量的空白元素推回到5 谁能告诉我应该如何分解此代码,以便将$chunkFive推送到数组中,直到它有5个元素 $blank = array("","","blank-image.png","",""); // create the bl
if
语句将正确数量的空白元素推回到5
谁能告诉我应该如何分解此代码,以便将$chunkFive
推送到数组中,直到它有5个元素
$blank = array("","","blank-image.png","",""); // create the blank image array
if(count($chunkFive) < 5){
echo 'it contains less than five elements';
if(count($chunkFive) == 4){
echo 'insert one element'; // 4 present + array_push 1 = 5
array_push($chunkFive,$blank);
}else if(count($chunkFive) == 3){
echo 'insert two elements'; // 3 present + array_push 2 = 5
array_push($chunkFive,$blank);
array_push($chunkFive,$blank);
}else if(count($chunkFive) == 2){
echo 'insert three elements'; // 2 present + array_push 3 = 5
array_push($chunkFive,$blank);
array_push($chunkFive,$blank);
array_push($chunkFive,$blank);
}else if(count($chunkFive) == 1){
echo 'insert four elements'; // 1 present + array_push 4 = 5
array_push($chunkFive,$blank);
array_push($chunkFive,$blank);
array_push($chunkFive,$blank);
array_push($chunkFive,$blank);
}
}else{
echo 'it contains five elements'; // no need to adjust
// do nothing
}
$blank=array(“,”,“blank image.png”,“,”);//创建空白图像数组
如果(计数($5)<5){
回声“它包含少于五种元素”;
如果(计数($5)==4){
echo“插入一个元素”;//存在4+数组_push1=5
数组推送($chunkFive,$blank);
}否则如果(计数($chunkFive)==3){
echo“插入两个元素”;//3当前+数组_push 2=5
数组推送($chunkFive,$blank);
数组推送($chunkFive,$blank);
}else if(计数($chunkFive)==2){
echo“插入三个元素”;//2当前+数组_push 3=5
数组推送($chunkFive,$blank);
数组推送($chunkFive,$blank);
数组推送($chunkFive,$blank);
}else if(计数($chunkFive)==1){
echo'insert four element';/1 present+array_push 4=5
数组推送($chunkFive,$blank);
数组推送($chunkFive,$blank);
数组推送($chunkFive,$blank);
数组推送($chunkFive,$blank);
}
}否则{
echo“它包含五个元素”;//无需调整
//无所事事
}
您可以尝试以下方法:
$blank = array("","","blank-image.png","","");
if(count($chunkFive) < 5){
echo 'insert '.(5-count($chunkFive)).' element';
while(count($chunkFive) < 5){
array_push($chunkFive,$blank);
}
} else{
echo 'it contains five elements'; // no need to adjust
// do nothing
}
$blank=array(“,”,“blank image.png”,“,”);
如果(计数($5)<5){
回显“插入”。(5计数($chunkFive))。“元素”;
同时(计数($5)<5){
数组推送($chunkFive,$blank);
}
}否则{
echo“它包含五个元素”;//无需调整
//无所事事
}
像这样的东西怎么样
$fixedLength = 5;
$delta = $fixedLength - count($chunkFive);
for ($i = 0; $i < $delta; $i++) {
array_push($chunkFive,$blank);
}
$fixedLength=5;
$delta=$fixedLength-count($chunkFive);
对于($i=0;$i<$delta;$i++){
数组推送($chunkFive,$blank);
}
有了它,您甚至不需要if(){}else{}
部分。如果数组长度为5,则不会运行循环,因为$delta
将为0
使用:
e、 g:
该函数从php 4开始就存在——使用内置函数通常是值得的,因为它们在大多数情况下都是经过优化的c实现。删除所有条件:
$blank = array("","","blank-image.png","","");
for ($i = count($chunk5); $i < 5 ; $i++) {
$chunk5[] = $blank;
}
$blank=array(“,”,“blank image.png”,“,”);
对于($i=count($chunk5);$i<5;$i++){
$chunk5[]=$blank;
}
我没有使用array\u push
,因为它与一个新的数组位置相同,并且使用了更多的php指令(用于func调用)琐碎:while(count($chunkFive)我决不会想到搜索一个本机函数,谢谢!是的,但是OP使用$blank
填充它们的数组,直到它有五个元素(所有类型均为数组)
[20] boris> $blank = ''; // easier to read ;-)
// ''
[21] boris> array_pad(array("one"), 5, $blank);
// array(
// 0 => 'one',
// 1 => '',
// 2 => '',
// 3 => '',
// 4 => ''
// )
[22] boris>
$blank = array("","","blank-image.png","","");
for ($i = count($chunk5); $i < 5 ; $i++) {
$chunk5[] = $blank;
}