2014-03-01 197 views
0

所以我有一个数字数组:把一个变量内的另一个变量的名称

$number=range(0,50) 

我有一个foreach循环,看起来像这样:

foreach($number as $row){ 
    $special($row[0])function=<insert special number function> 
} 

当我试图想象,我试图将一个变量(数字)置于另一个变量的名称中,但不幸的是,它不成功。希望你能帮助我:)

编辑: 我想使50略有不同的变量,唯一的区别是数字。所以我想如下创造的东西:

$special1function 
$special2function 
$special3function 
... 
$special50function 
+0

你的目标是?为50个数字创建50个函数几乎肯定不是你想要做的。有更好的方法来完成任务。 –

回答

0

你应该在PHP中使用可变变量:鉴于php.net

例如:

${"special" . $counter."function"} = "your custom value"; 

但是最好使用一个数组neinested:Array

+1

如果有50个自定义(编号)值,由循环产生,创建50个变量是一个坏的解决方案。更好的是使用数组。 –

+0

我同意你 – Alireza41

+1

谢谢你,这工作。我没有真正处理由循环生成的变量,这只是为了让我的问题更简单。我真的有一个数据库,包含n行(大约20),每行获得4个不同的变量,这些变量稍后将被放入一个数组,并从那里进入一个表。但所有这些细节与我的问题无关,只会让你更难理解。 尽管如此,非常感谢您的帮助:) – JJJ

0

,如果你写的IM认识,试试这个:

 $special = array(); 
    foreach($number as $row){ 
     $special[$row['youre row name that you want']] = $number; 
    } 


    print_r($special); 
+0

我想使50个略有不同的变量,唯一的区别是数字。所以我想如下创造的东西: $ special1function $ special2function $ special3function ... $ special50function – JJJ

0

您应该使用数组:

$specialFunctions = array(); 
foreach(range(0,50) as $number){ 
    $specialFunctions[$number] = <insert special number function>; 
} 

然后,进入23日一个这样的:

$twentyThird = $specialFunctions[23]; 
$twentyThird(); // call the function 

但最有可能的,你需要在它们之间迭代:

foreach($specialFunctions as $specialFunction) { 
    $specialFunction(); // call the function 
} 

按照其他答案的建议创建50个变量不是一个好的解决方案。