Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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 - Fatal编程技术网

Php 无法将标量值用作数组,我做错了什么?

Php 无法将标量值用作数组,我做错了什么?,php,Php,这是我的代码,正如你所看到的,我有3或4个数组,代码运行良好,但是我得到了这个错误,不能使用标量值作为数组,我不知道为什么,我已经在谷歌搜索了,但我不知道我做错了什么。。有什么想法吗?我也尝试过排序,但它不起作用,我已经阅读了php手册,但我不明白我做错了什么 谢谢。我认为您的问题在于此代码。 在foreach$文件中使用$clave作为$clave=>$partido{line,每次循环时都会销毁并重新创建$clave作为标量变量 然后在第10行foreach$file中再次使用它作为$cla

这是我的代码,正如你所看到的,我有3或4个数组,代码运行良好,但是我得到了这个错误,不能使用标量值作为数组,我不知道为什么,我已经在谷歌搜索了,但我不知道我做错了什么。。有什么想法吗?我也尝试过排序,但它不起作用,我已经阅读了php手册,但我不明白我做错了什么


谢谢。

我认为您的问题在于此代码。 在foreach$文件中使用$clave作为$clave=>$partido{line,每次循环时都会销毁并重新创建$clave作为标量变量

然后在第10行foreach$file中再次使用它作为$clave=>$partido{并再次销毁它

 <?php
$file = file("lliga.txt");
/*Convertir en un array de arrays */
$clave = array();
foreach($file as $clave => $partido){
    $file[$clave] = explode(",",$partido);  
}

/*Crear el array $clasificacion*/
foreach($file as $clave => $partido){
    $equipoLocal = $partido[$clave][0];
    $equipoVisitante = $partido[$clave][1];
    $golesEquipoLocal = $partido[$clave][2];
    $golesEquipoVisitante = $partido[$clave][3];
        
    //Solo si no existe el equipo Local lo inicilizo todo a 0
    //array_key_exists
    if (array_key_exists($equipoLocal, $partido)) {
        $clave[$equipoLocal]['PG'] = 0;
        $clave[$equipoLocal]['PP'] = 0;
        $clave[$equipoLocal]['PE'] = 0;
        $clave[$equipoLocal]['P'] = 0;
        $clave[$equipoLocal]['GF'] = 0;
        $clave[$equipoLocal]['GC'] = 0;
            
    }
    if (array_key_exists($equipoVisitante,$partido)){
        $clave[$equipoVisitante]['PG'] = 0;
        $clave[$equipoVisitante]['PP'] = 0;
        $clave[$equipoVisitante]['PE'] = 0;
        $clave[$equipoVisitante]['P'] = 0;
        $clave[$equipoVisitante]['GF'] = 0;
        $clave[$equipoVisitante]['GC'] = 0;
    }
    //Solo si no existe el equipo Visitante lo inicilizo todo a 0
    //Empiezas a mirar a resultados
        
    if ($golesEquipoLocal  > $golesEquipoVisitante){
        $clave[$equipoLocal]['PG']++;
        $clave[$equipoLocal]['P']++;
        $clave[$equipoLocal]['GF']++;
    }
    if ($golesEquipoLocal == $golesEquipoVisitante){
        $clave[$equipoLocal]['PE']++;
        $clave[$equipoLocal]['GF']++;
        $clave[$equipoLocal]['P'] = $clave[$equipoLocal]['P'] +1;
        $clave[$equipoLocal]['GC']++;
        $clave[$equipoVisitante]['PE']++;
        $clave[$equipoVisitante]['GF']++;
        $clave[$equipoVisitante]['GC']++;
        $clave[$equipoVisitante]['P']= $clave[$equipoVisitante]['P']+1;
            
    }
    if ($golesEquipoLocal < $golesEquipoVisitante){
        $clave[$equipoVisitante]['PG']++;
        $clave[$equipoVisitante]['P']++;
        $clave[$equipoVisitante]['GF']++;
        $classi = fopen("classi.txt", "a");
        $fp = $equipoVisitante;
        fwrite($classi, $fp);
        fwrite($classi, $fp);
        fclose($classi);
    }
    $paco=[];
    array_multisort($partido, SORT_ASC, $paco);
    
    print_r($partido);
}
?>
举个例子吧

$file = file("lliga.txt");
/*Convertir en un array de arrays */
$clave = array();
foreach($file as $clave => $partido){
    $file[$clave] = explode(",",$partido);  
}

/*Crear el array $clasificacion*/
foreach($file as $clave => $partido){
或者,由于$key将只是0,1,2,3,…您可以稍微简化

$file = file("lliga.txt");
$clave = array();
foreach($file as $key => $partido){
    $clave[$key] = explode(",",$partido);  
}

/*Crear el array $clasificacion*/
foreach($clave as $partido){
或者,由于输入似乎是一个以换行符结尾的逗号分隔值文件,您也可以从阅读


请始终向我们显示所有错误信息,而不是摘要。然后,如果可能的话,请指出错误消息中的行号所指示的代码行。良好的代码缩进将帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会被要求在f中修改此代码几周/几个月后,您将在最后感谢我。警告:不能在C:\xampp\htdocs\php\index.php的第55行使用标量值作为数组,如果您运行此代码,您将在每一行中看到更多此错误。如果没有文本文件lliga.TXT,我们无法运行此代码。那么我应该上载此文件吗?为什么我退出clave以获取密钥?这不就是d吗删除我在clave中得到的所有信息?不,在foreach$文件中使用$clave作为$clave=>$partido{line在循环中每次销毁并重新创建$clave作为标量变量:我明白了,我这样做了,但在其他通道中仍会出现相同的错误,而且更改此值后打印将停止工作。好的,请给我一个输入文件的示例,仅3或4行就发现第二个foreach再次销毁$clave我拒绝了我的回答
$file = file("lliga.txt");
$clave = array();
foreach($file as $partido){
    $clave[] = explode(",",$partido);  
}

/*Crear el array $clasificacion*/
foreach($clave as $partido){