Объединение переменных php:

#php

#php

Вопрос:

У меня проблема с созданием переменной в цикле и доступом к значению третьей переменной, я пробовал много способов, но теперь я не знаю, как это сделать…. код такой..

 $rand_1 =       random_username($_POST['txtuser_name']);
$rand_2 =       random_username($_POST['txtuser_name']);
$rand_3 =       random_username($_POST['txtuser_name']);

$username   =   "";

for($i=1; $i<=3;   $i){
   $name   =    "rand_".$i;
   $username .= $name."<br />";
}

echo $username;
  

Любое предложение…..

Ответ №1:

Попробуйте $$name , которая является переменной переменной.

Тем не менее, когда вы видите var_1 etc, обычно это означает, что вы должны использовать массив.

Тогда вы могли бы создать свой код…

 $rand = array();

foreach(range(0, 2) as $index) {
    $rand[] = random_username($_POST['txtuser_name']);
}

$username = join('<br />', $rand) . '<br />'; 
  

Комментарии:

1. @Ibu Просто более простой способ перебирать числа, чем при обычном for цикле.

Ответ №2:

используйте $username .= $$name."<br />"; вместо $username .= $name."<br />";

Но лучший подход может быть

 $user=array();

for($i=1; $i<=3;   $i){
   $user[] =  random_username($_POST['txtuser_name']);
}

echo implode("<br/>", $user)."<br />";
  

Комментарии:

1. все это работает с $$name,, и второй метод также хорош.

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

3. @lex, эй, чувак, вы оба правы, но в цикле я также хочу проверить в БД. вот почему не идеально взрывать или объединять все username, а просто проверять в цикле, если не существует в d.b, затем объединять с username, иначе go next….so $query1 = «выберите count(*) из member_details, где username ='».$$name.»‘»; $nameCount = DbQuery($query1, ‘count’); if($nameCount==0){ $username .= $$name.»<br />»; }