2014-08-13 6 views
0

У меня есть несколько переменных, как это и я хочу, чтобы объединить две переменные в цикле Еогеасп:PHP не удается отобразить содержимое переменной внутри цикла Еогеасп когда объединить две различные переменные массива

$foo = array(4, 9, 2); 

$variables_4 = array("c"); 

$variables_9 = array("b"); 

$variables_2 = array("a"); 

foreach($foo as $a=>$b) { 

foreach($variables_{$b} as $k=>$v) { 

echo $v; 

} 

} 

После того, как я запускаю выше коде отображать сообщение об ошибке "Сообщение: Неопределенная переменная: variables_"

Кто-нибудь знает, как решить эту проблему?

ответ

1

Вы можете использовать Variable variables, чтобы выполнить эту работу, но в этом случае это отвратительно.

уборщик способ сделать это с помощью вложенных массивов:

$foo = array(4=>array("c"), 
      9=>array("b"), 
      2=>array("a")); 

foreach($foo as $a=>$b) { 
    foreach($b as $k=>$v) { 
      echo $v; 
    } 
} 

Тогда вам не придется создавать много переменных, как $variables_9.

+0

Спасибо, что это работает ...;) –

1

Вы должны попытаться использовать Eval(), например:

foreach(eval('$variable_'.$b) as $k=>$v)... 
1

я настоятельно рекомендую другой маршрут (это слабая структура). Но в любом случае ...

Try конкатенации в строку, а затем использовать этот

$var = 'variables_' . $b; 
foreach($$var as $k=>$v) { 

echo $v; 

} 
1

Это ошибка синтаксиса. Вам нужно сцепить строки в скобках:

${'variables'.$b} 

взгляд на this сообщения для получения дополнительной информации.