Из-за довольно старой библиотеки, с которой я работаю, мне нужно собрать массивы в четные куски из пяти. Итак, если у моего массива 9 элементов, мне нужно его разбить (5 и 4), а затем мне нужно добавить пустой элемент в последний массив, чтобы получить его до 5.DRY - добавить определенное количество элементов в конец массива до тех пор, пока счетчик не достигнет определенного значения int
Я написал очень плохой код это работает, но я знаю, что это противоречит принципам DRY, потому что он подсчитывает число и использует несколько операторов if
для ввода правильного количества пустых элементов, чтобы вернуться к 5
.
Может кто-нибудь посоветует мне, как я должен нарушать этот код так, чтобы $chunkFive
был array_push
ed до тех пор, пока он не имеет 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
}
Trivial: ' while (count ($ chunkFive) <5) array_push ($ chunkFive, $ blank); ' –