我在php中有一些变量,比如:$ parsed [ X ] [4]和$ parsed [ X ] [5] X 的数量从0到31甚至更多。 这很多变量包含仅数字,我想检查这些数字并转换为变量,如$ ng * ex:$ ng0 $ ng1 $ ng2 $ ng3 $ ng4或$ ng [0]或类似的东西...然后回显他们想要的地方。
<?php
$ng0="G";
if ($parsed[0][4] == "0") {
$ng0="NG";
}
if ($parsed[0][5] == "0") {
$ng0="NG";
}
$ng1="G";
if ($parsed[1][4] == "0") {
$ng1="NG";
}
if ($parsed[1][5] == "0") {
$ng1="NG";
}
$ng2="G";
if ($parsed[2][4] == "0") {
$ng2="NG";
}
if ($parsed[2][5] == "0") {
$ng2="NG";
}
$ng3="G";
if ($parsed[3][4] == "0") {
$ng3="NG";
}
if ($parsed[3][5] == "0") {
$ng3="NG";
}
?>
嗯,你知道代码不会达到31!或者甚至130以后,或者更多,所以如何自动检查所有$解析[ X ] [4]&amp; $解析[ X ] [4]并为每个人制作一个变量,thx。
答案 0 :(得分:2)
只需使用常规for
循环:
<?php
$ng = array();
for ($i = 0; $i < count($parsed); $i++) {
if ($parsed[$i][4] == "0" || $parsed[$i][5] == "0") {
$ng[$i] = "NG";
} else {
$ng[$i] = "G";
}
}
print_r($ng);
?>
或者如果你真的想要使用你的变量想法(不要因为你可以使用数组来垃圾邮件变量):
<?php
for ($i = 0; $i < count($parsed); $i++) {
$variableName = "ng" . $i;
if ($parsed[$i][4] == "0" || $parsed[$i][5] == "0") {
$$variableName = "NG";
} else {
$$variableName = "G";
}
}
$vars = get_defined_vars();
foreach ($vars["GLOBALS"] as $variableName => $value) {
if (preg_match("/^ng([0-9]+)$/", $variableName)) {
echo $variableName . " is " . $value . PHP_EOL;
}
}
/*
ng0 is NG
ng1 is G
....
ng29 is NG
ng30 is NG
*/
?>