Foros del Web » Programando para Internet » PHP »

Problema Con php

Estas en el tema de Problema Con php en el foro de PHP en Foros del Web. Bueno les comento que tengo un problema con un script . el error es el siguiente : Código: Warning: array_merge() [function.array-merge]: Argument #2 is not ...
  #1 (permalink)  
Antiguo 28/12/2005, 23:14
 
Fecha de Ingreso: diciembre-2005
Mensajes: 249
Antigüedad: 18 años, 2 meses
Puntos: 0
Problema Con php

Bueno les comento que tengo un problema con un script .
el error es el siguiente :
Código:
Warning: array_merge() [function.array-merge]: Argument #2 is not an array in C:\AppServ\www\totalguild.php on line 38
el php script es el siguiente :

Código:
<?php
$dir = 'D:\\DreaMServer2';
$top = 10;
$title_color = 'AACAF5';
$body_color = 'C6D8F6';

$glob = glob(($dir==''?'':$dir.'\\').'Character\\AscII*\\*.txt');

$name_arr = array();
$town_arr = array();
$lvl_arr = array();
$exp_arr = array();

for($i=0; $i<count($glob); $i++)
{
        $file = file($glob[$i]);
        for($a=0; $a<count($file); $a++)
        {
                if(preg_match('/character-name     =/', $file[$a]))
                $name = $a;
                elseif(preg_match('/character-location   =/', $file[$a]))
                $town = $a;
                elseif(preg_match('/character-LEVEL    =/', $file[$a]))
                $lvl = $a;
                elseif(preg_match('/character-EXP      =/', $file[$a]))
                $exp = $a;
        }
        $name = str_replace('character-name     = ', '', $file[$name]);
        $town = str_replace('character-location   = ', '', $file[$town]);
        $lvl = str_replace('character-LEVEL    = ', '', $file[$lvl]);
        $exp = str_replace('character-EXP      = ', '', $file[$exp]);

        $name_arr = array_merge($name_arr, $name);
        $town_arr = array_merge($town_arr, $town);
        $lvl_arr = array_merge($lvl_arr, $lvl);
        $exp_arr = array_merge($exp_arr, $exp);
}

array_multisort($lvl_arr, SORT_DESC, SORT_NUMERIC, $town_arr, $name_arr, $exp_arr);

echo '<style>
table {
        border-collapse:collapse; border:0;
        }
td {
        font-size: 13px; font-family: sans-serif; text-align:center;
        border-right:windowtext 0.5pt solid; border-top:windowtext 0.5pt solid; border-left:windowtext 0.5pt solid; border-bottom:windowtext 0.5pt solid;
        }
</style>
<table cellpadding=4>
<tr>
<td width=10% bgcolor="'.$title_color.'">
   Rating
</td>
<td width=30% bgcolor="'.$title_color.'">
   Name
</td>
<td width=20% bgcolor="'.$title_color.'">
   Level
</td>
<td width=40% bgcolor="'.$title_color.'">
   Experience
</td>
</tr>';

for($i=0; $i<$top; $i++)
{
        if(@$name_arr[$i])
        {
                if(trim($town_arr[$i]) == 'aresden')
                $color = 'red';
                elseif(trim($town_arr[$i]) == 'elvine')
                $color = 'blue';
                else
                $color = 'white';

                echo '<tr>
                <td style="color:'.$color.'" bgcolor="'.$body_color.'">
                   '.($i+1).'
                </td>
                <td style="color:'.$color.'" bgcolor="'.$body_color.'">
                   '.$name_arr[$i].'
                </td>
                <td style="color:'.$color.'" bgcolor="'.$body_color.'">
                   '.$lvl_arr[$i].'
                </td>
                <td style="color:'.$color.'" bgcolor="'.$body_color.'">
                   '.$exp_arr[$i].'
                </td>
                </tr>';
        }
}

echo '</table>';


?>
help ;)

Última edición por braiank; 28/12/2005 a las 23:22
  #2 (permalink)  
Antiguo 29/12/2005, 08:53
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 3 meses
Puntos: 19
hola ..
mira por empezar .. tengo entendido que la funcion array_merge sirve para combinar dos matrices, y esta sucediendo de que el segundo parametro que le estas pasando no es una matriz
http://ar2.php.net/manual/es/function.array-merge.php

por lo tanto, me da la impresion de que puede ser ese el problema.

Código PHP:
        $name str_replace('character-name     = '''$file[$name]);
        
$town str_replace('character-location   = '''$file[$town]);
        
$lvl str_replace('character-LEVEL    = '''$file[$lvl]);
        
$exp str_replace('character-EXP      = '''$file[$exp]);
        
$name_arr array_merge($name_arr$name);
        
$town_arr array_merge($town_arr$town);
        
$lvl_arr array_merge($lvl_arr$lvl);
        
$exp_arr array_merge($exp_arr$exp); 
y por lo que veo las variables $name, $town, $lvl y $exp solamente tienen un valor, si lo que queres hacer es ir rellenando la matriz, me parece que lo vas a tener que hacer de otra forma ...

se me ocurre que podrias usar la variable $i que usas en el for, para ir rellendando la matriz de la siguiente forma ..

Código PHP:
$name_arr[$i] = $name;
$town_arr[$i] = $town;
$lvl_arr[$i] = $lvl;
$exp_arr[$i] = $exp
esto ultimo reemplazalo por la parte donde haces la asignacion ... a mi no me funciona porque no tengo datos, pero por lo menos no me da error ..
salud
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:01.