Переменная переменная PHP для цикла

эй, ребята, это даже возможно сделать в php

<?php $sectorcount = $row_SectorCount['COUNT(*)']; //number of rows in database for ($i = 1; $i <= $sectorcount; $i++) { ${spendingname . $i}= array(); ${spendingpercent . $i} = array(); ${spendingid . $i} = array(); mysql_select_db($database_conn2, $conn2); $query_Spending = "SELECT CONCAT(spending.SectorID, spending.ExpenditureID) AS 'SpendingID', expenditure.ExpenditureName, spending.SpendingPercent, spending.SectorID FROM spending INNER JOIN expenditure ON spending.ExpenditureID = expenditure.ExpenditureID WHERE spending.SectorID = ".$i; $Spending = mysql_query($query_Spending, $conn2) or die(mysql_error()); $totalRows_Spending = mysql_num_rows($Spending); while($row_Spending = mysql_fetch_assoc($Spending)) { ${spendingname.$i}[] = $row_Spending['ExpenditureName']; ${spendingpercent.$i}[] = $row_Spending['SpendingPercent']; ${spendingid.$i}[]= $row_Spending['SpendingID']; } mysql_free_result($Spending); } 

Я планировал использовать это здесь в этом контексте. имея массив для извлечения значений с использованием предложения where и отображения их отдельно

Это то, что вы ищете:

 for ($i = 0; $i < 14; $i++) { ${'name' . $i} = $i; } echo $name3; 

Но вы должны просто использовать массив:

 $name = array(); for ($i = 0; $i < 14; $i++) { $name[$i] = $i; } echo $name[3]; 

Если вам нужен массив в массиве, продолжайте и делайте это тоже. Если вам нужно больше вложенных массивов, чем это, вы, вероятно, должны использовать класс как-то, а не все вложенные массивы.

Во-первых, я предлагаю использовать массив вместо этого. Переменные переменные не предназначены для использования как это.

Тем не менее, можно получить доступ к ${$name.$i} или, возможно, сделать что-то вроде

 $varname = $name.$i; $$varname = 1; // or read from $$varname 

Используйте массив. Для этого они и есть.

Как сказал Колинк, для этого нужен массив!

Однако то, что вы просите, может быть достигнуто:

Подробнее здесь

В основном,

 <?php for($i=0; $i<=13; $i++){ $varname = "name" . $i; $$varname=$i; } echo $name1; // 1 ?> 

Он не даст желаемого результата 1, а даст 13

В чем причина такого. вы можете сделать array доступ позже к использованию

  for($i=0; $i<=13; $i++) { $name[$i]=$i; } echo $name[1]; *//it will echo 1