2013-10-28 4 views
1

Мне нужна помощь. в моем проекте у меня есть две переменные,Динамическое имя простой переменной и имя массива

$name = 'john'; 
    $reg = 10; 

и из этой информации я хочу создать массив с именем $john10 динамически. как

$john10 = new array(); 

поэтому, пожалуйста, помогите мне.

+3

Это не очень хорошая идея. Объясните оригинальную задачу, чтобы мы могли помочь вам решить проблему правильно, а не просто помогать вам писать дерьмо. – zerkms

+0

есть один файл, который вызывает каждый раз в моем модуле magento, и мне нужны имена динамических массивов для него, как я упомянул выше. Я знаю, что данные должны быть организованы как ключ ($ abc [1] = ......), но здесь я не могу использовать этот тип логики –

+0

'$ john [10] = ...' что-то не так с использованием реальных массивов ? – zerkms

ответ

1

Хотя я бы отговорить делать что-либо подобное в большинстве случаев, это то, как вы можете это сделать:

<?php 
$name = 'john'; 
$reg = 10; 


${$name.$reg} = array(); 
+3

«Хотя я бы отговаривал делать что-либо подобное в большинстве случаев» - если да, то почему бы не дать хороший совет? – zerkms

+0

спасибо, что это работает для моего проекта. –

+2

Дорогой ТАК, я понимаю, что вы все похожи на точки репутации, но ** ОСТАНОВИТЕСЬ СКАЗАТЬ СОВЕТЫ *. Спасибо. – zerkms

2

Его не очень хорошая идея, чтобы сделать это, что вы хотите.

Если вам нужно что-то подобное имени может иметь различное значение с различными рег, то вы можете использовать 2D массив, как, как:

store[name][reg] = new array(); 

Надеется, что вы анализы, что и я перепроектировать код.

1

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

<?php 
// The very top of your php script 
$vars = get_defined_vars(); 

// Now do your stuff 
$name = 'john'; 
$reg = 10; 

// Get all the variables defined in current scope 
$john10 = array_diff(get_defined_vars(),$vars); 

print_r($john10); 
?> 
Смежные вопросы