Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将多维数组转换为简单数组?_Php_Arrays - Fatal编程技术网

Php 将多维数组转换为简单数组?

Php 将多维数组转换为简单数组?,php,arrays,Php,Arrays,我在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=

我在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个,或者更多,那么我如何能够自动检查所有$parsed[X][4]和$parsed[X][4],并为每个变量创建一个变量,thx。

只需为
循环使用常规的

<?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);
?>

或者,如果您真的想使用您的变量想法(不要因为可以而滥发变量-改用数组):



还可以使用
foreach
循环:
$ng=array();foreach($key=>value){if($value[4]==“0”| |$$value[5]==“0”){$ng[$key]=“ng”;}否则{$ng[$key]=“G”;}
第一个是可以的,但是thx。@SweetieBelle如果你真的想缩短它,你可以把它缩短得更短:
foreach($k=>v){$ng[$k]=($v[4]=“0”|[5] ==“0”?“NG”:“G”);}
。我想我已经解释正确了,请看下面的答案,这是我想要的,如果你想要,欢迎你编辑我的问题。
<?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
    */
?>