PHP - Algun modo de simplificar estas lineas

   
Vista:

Algun modo de simplificar estas lineas

Publicado por vicen (14 intervenciones) el 06/06/2014 18:34:14
Alguno modo de simplificar este código que ejerza la misma función?

1
2
3
4
5
6
7
8
9
10
11
12
if($nivel == 1)
{
    imagettftext($im, 8, 0, 224, 158, $yellow, $font,("Novato"));
}
else if($nivel == 2)
{
    imagettftext($im, 8, 0, 224, 158, $yellow, $font,("Principiante"));
}
else if($nivel == 3)
{
    imagettftext($im, 8, 0, 224, 158, $yellow, $font,("Experto"));
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Algun modo de simplificar estas lineas

Publicado por Alejandro (198 intervenciones) el 06/06/2014 19:31:18
Me suena a tarea (¬_¬¡)

Se hace con "switch"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Algun modo de simplificar estas lineas

Publicado por Freddy (5 intervenciones) el 06/06/2014 19:44:30
Saludos, no se si te pueda servir esto.

1
2
3
4
5
6
7
8
9
for($nivel=0; $nivel<3; $nivel++)
{
	$ar_val_img = array('0'=>'Novato','1'=>'Principiante','2'=>'Experto');
	foreach($ar_val_img as $i => $j)
	if($nivel = $i)
	{
	imagettftext($im, 8, 0, 224, 158, $yellow, $font,('$j'));
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Algun modo de simplificar estas lineas

Publicado por vicen (14 intervenciones) el 06/06/2014 20:26:24
Freddy acabo de probar y no funciona de ese modo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Algun modo de simplificar estas lineas

Publicado por vicen (14 intervenciones) el 06/06/2014 19:58:16
Alejandro, con switch probe pero me daba errores amtes de postear aquí, por eso pregunte como simplificar porque no pude lei que el swich era el más.rapido. Me podrias decir como poder hacerlo ya que no supe.

Freddy vere si eso me funciona parece mas simplificado, pero si alguien sabe decirme como hacerlo con swich mejor.

Yo probe como indicaban en el php con el case y el ecko y break; pero me salia error.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro

Algun modo de simplificar estas lineas

Publicado por Alejandro (198 intervenciones) el 06/06/2014 20:26:47
Espero que lo entiendas y no solo copies y pegues.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch($nivel){
    case 1:
        $texto = "Novato";
    break;
    case 2:
        $texto = "Principiante";
    break;
    case 3:
        $texto = "Experto";
    break;
    default:
        $texto = "Ninguno";
}
imagettftext($im, 8, 0, 224, 158, $yellow, $font,($texto));


Aun mas simple
1
2
$textos = array(1=>"Novato","Principiante","Experto");
imagettftext($im, 8, 0, 224, 158, $yellow, $font,($textos[$nivel]));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Algun modo de simplificar estas lineas

Publicado por vicen (14 intervenciones) el 06/06/2014 20:33:20
Probare alejandro tus opciones acabo de verlas conseguí hacerlo básicamente en swich pero mas complicado probare tus lineas.

Recién probe y si las entendí la primera es similar a la que hice solo que yo en vez de poner case: $variable empece a copiar linea y linea y linea. y tu lo simplificaste más.

La del array la vi muy sutil a partir de más 1 o igual a 1 se le va otorgando la frase y es más simplificado y me gusto más mi pequeña duda es cual de las dos es más rápida a la hora de correr.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Algun modo de simplificar estas lineas

Publicado por Daniel (17 intervenciones) el 09/06/2014 15:45:08
Hola, creo que es mas rapido este
$textos = array(1=>"Novato","Principiante","Experto");
imagettftext($im, 8, 0, 224, 158, $yellow, $font,($textos[$nivel]));
el por que es por que no tiene que validar nada solo decir cual es el valor segun su posición.
http://www.codigomanso.com/es/2008/11/php-switch-vs-array-asociativo/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Algun modo de simplificar estas lineas

Publicado por vicen (14 intervenciones) el 09/06/2014 16:06:12
Bien gracias al final use ese ya que lo vi más simplificado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar