【发布时间】:2017-01-16 02:03:58
【问题描述】:
我已经搜索了很多主题,但目前还没有一个能帮助我满足我的特定需求。
我尝试了This Thread 的许多选项,但没有一个是完全正确的。
我正在为交换机和路由器制作配置生成器, 我正在尝试对其进行简化,因此我不会为每个接口都设置一个配置数组,而是为每种类型的布局设置一个配置数组,并将接口名称作为变量。 我有网页发布到脚本,我有页面发布每个帖子的端口布局,每个界面都作为自己的变量。
即
$fa1 = "DESKTOP";
$fa2 = "VOIP";
$fa3 = "DESKTOP";
$fa4 = "";
$fa5 = "DESKTOP";
等等。我正在尝试使用 foreach 循环来遍历每个接口(因此)
$ints = array($fa1,$fa2,$fa3,$fa4,etc);
foreach ($ints as $line) {
if ($line == "PC") {
file_put_contents($file, $pcarray.FILE_APPEND);
}
if ($line == "VOIP") {
file_put_contents($file,$voiparray.FILE_APPEND);
}
}
接口设置为数组:
$pcarray = array(
'interface ' .$interface,
'configetc'
);
我需要一个函数来获取接口变量的名称,以便将其分配给 $interface 变量。
到目前为止,我发现并尝试过的所有示例似乎都与类似值的变量不兼容。
即。对于上述情况,大多数人会为 DESKTOP 出现的所有内容返回 fa1,而不是为下一个桌面返回 fa3。
一个不太符合我要求的例子是:
function print_var_name($var) {
foreach($GLOBALS as $var_name => $value) {
if ($value === $var) {
return $var_name;
}
}
return false;
}
这个,对于每个变量值重复后的第一个刚刚返回的第一个变量名。
编辑: 我想要回来的是:
(as the written array)
interface fa1
standard desktop config
interface fa2
standard voip config
interface fa3
standard desktop config
interface fa5
standard desktop config
目前我在哪里:
interface fa1
standard desktop config
interface fa2
standard voip config
interface fa1
standard desktop config
interface fa1
standard desktop config
【问题讨论】:
-
你的问题不是很清楚,这可能是你有很多观点但没有回应的原因。我想我可以理解你试图做什么。所以要确认一下,在将变量名分配给
$interface变量时,您不想重复值吗?例如如果fa1已经分配给DESKTOP,那么使用fa3? -
是的,没错,这个想法是为所有类似的接口使用一个模板,并且每次只分配接口值(在 foreach 循环内),这样它将先使用 fa1,然后是 fa2,然后是 fa3但是选择接口的名称,以便它只分配具有值的接口。 IE。如果 fa5 未使用,但 fa6 是桌面,它只会跳过 fa5(该部分对我有用),就像其他所有方法一样,我发现了针对该值的引用,这使得它每次出现时都保持 fa1跨桌面价值