Как увеличить переменную с некоторыми значениями и изменить порядок результата - PullRequest
0 голосов
/ 07 октября 2018

Я хотел увеличить эту переменную следующими значениями:

$Variable = "AAAA1 VALUE1; \
             BBBB1 VALUE1; \
             CCCC1 VALUE1";

Итак, я сделал этот простой код:

for($i=1; $i<3; $i++) {
$Variable = "AAAA$i VALUE$i; \
             BBBB$i VALUE$i; \
             CCCC$i VALUE$i";
}

И я получил 2 результата:

AAAA1 VALUE1BBBB1 VALUE1CCCC1 VALUE1AAAA2 VALUE2BBBB2 VALUE2CCCC2 VALUE2

Но я хочу получить один полный результат, подобный этому:

AAAA1 VALUE1AAAA2 VALUE2BBBB1 VALUE1BBBB2 VALUE2CCCC1 VALUE1CCCC2 VALUE2

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Вы можете сделать строку массивом и зациклить каждый элемент один за другим и создать строку внутри цикла for, аналогичного вашей.

$Variable = "AAAA VALUE
BBBB VALUE
CCCC VALUE";
$startval = 1;
$endval = 5;

$var = explode("\n", $Variable);

$str = "";
foreach($var as $v){
    $temp = explode(" " , $v);
    //Loop from startval to endval and build your string
    for($i=$startval; $i<=$endval; $i++){
        $str .= $temp[0] .$i . " " . $temp[1] .$i. "\n";
    }
    $str .= "\n"; // add new line
}

echo $str;

Вывод:

AAAA1 VALUE1
AAAA2 VALUE2
AAAA3 VALUE3
AAAA4 VALUE4
AAAA5 VALUE5

BBBB1 VALUE1
BBBB2 VALUE2
BBBB3 VALUE3
BBBB4 VALUE4
BBBB5 VALUE5

CCCC1 VALUE1
CCCC2 VALUE2
CCCC3 VALUE3
CCCC4 VALUE4
CCCC5 VALUE5

https://3v4l.org/OPA8K

0 голосов
/ 07 октября 2018

в коде удара:

"AAAA$i VALUE$i;  
 BBBB$i VALUE$i;  
 CCCC$i VALUE$i";

вы хотите выполнить итерацию в каждой строке!

$variable = explode("\n",$Variable);

сейчас $variable итерируемо, или используйте массив:

$variable=[
             "AAAA%input1% VALUE%input1%;",
             "BBBB%input1% VALUE%input1%;",
             "CCCC%input1% VALUE%input1%;",
];

$final_string="";
foreach($variable as $var){

    for($i=1; $i<3; $i++) {
        $final_string. = str_replace("%input1%",$i,$var) ."\n";
    }

}

echo $final_string;
...