отображать серии символов в строке, используя циклы в php - PullRequest
0 голосов
/ 18 апреля 2020

Я хочу сделать серию, например, 1/2 + 3/4 + 5/6 + 7/8 + 9/10 + 11/12 в виде строки с использованием циклов в php , напиши сейчас я написал этот код:

$output='';
    for ($i=0; $i < 6; $i++) 
    { 
        $output=$output.($i+1+$i).'/'.($i+2+$i);
        if ($i==5) 
        {
            break;
        }
        else
        {
            $output=$output.'+';
        }
    }
    echo nl2br("\n4: $output");

вывод:

1/2 + 3/4 + 5/6 + 7/8 + 9/10 + 11/12

есть ли какой-нибудь другой лучший способ сделать это?

Ответы [ 4 ]

2 голосов
/ 18 апреля 2020
preg_replace('/(\d+) \+ (\d+)/', '$1/$2', implode(" + ", range(1, 12)));

https://www.ideone.com/dKUIwc

1 голос
/ 19 апреля 2020

as a string using loops in php. -> отображать в виде строки ...

Используется для операторов l oop и modulus %. Отобразите первый ключ, forward sla sh, затем продолжите итерацию за пределами этого условия и отобразите следующий ключ, затем отобразите знак плюс.

Продолжайте итерацию, пока не оцените, находится ли значение в конце массив. Два условия внутри l oop.

Я использовал итератор, определенный как $ i, так как использование foreach l oop начиналось бы с нуля, и вам пришлось бы делать дополнительный код, чтобы получить последнее значение.

$myArray = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); 

$stmt = NULL;
  for($i = 0; $i < count($myArray); $i++){
    if($myArray[$i] % 2 ){
      $stmt .= $myArray[$i]."/"; 
    }else{
      if($myArray[$i] !== end($myArray)){
        $stmt .= $myArray[$i].' + ';
      }else{
        $stmt .= $myArray[$i];
      }
    }
  }

ВЫХОД:

enter image description here

1 голос
/ 18 апреля 2020

Начните l oop с 1 и сделайте шаг 2 вместо одного. Затем поместите каждую последовательность в массив и, наконец, взорвите ее с помощью +

$output = [];

for ($i = 1; $i <= 12; $i += 2) {
    $output[] = $i . '/' . ($i + 1); 
}

echo implode(' + ', $output);
1 голос
/ 18 апреля 2020

С минимумом кода это:

$output = [];
for ($i = 0; $i < 6; $i++) { 
    $output[] = (2 * $i + 1) . '/' . (2 * $i + 2);
}
echo implode(' + ', $output);
...