簡體   English   中英

不能將標量值用作數組,我做錯了什么?

[英]Cannot use a scalar value as an array, what i'm doing wrong?

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

這是我的代碼,如您所見,我有 3 或 4 個 arrays,代碼工作正常,但是我收到此錯誤Cannot use a scalar value as an array ,我不知道為什么,我已經在谷歌搜索但我不要明白我做錯了什么..有什么想法嗎? 我也已經嘗試過排序,但它不起作用,我已經閱讀了 php 手冊,但我不明白我做錯了什么。

謝謝。

我認為您的問題出在此代碼中。 foreach($file as $clave => $partido){行中使用$clave clave 每次循環都會破壞然后重新創建$clave作為 SCALAR 變量。

然后在第 10 行foreach($file as $clave => $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){

所以試試這個例如

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

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

或者因為 $key 將只是 0,1,2,3,......你可以稍微簡化一下

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

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

或者,由於輸入似乎是換行符終止的文件,逗號分隔值,您也可以從閱讀fgetcsv()中受益

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM