PHP - Array con función no consigo que funcione.

 
Vista:
sin imagen de perfil

Array con función no consigo que funcione.

Publicado por EloFran (6 intervenciones) el 24/03/2018 18:05:19
El problema que tengo es que cuando ejecuto la funcion altaAlumnos me mete en el array los dos primeros "Juanitos" aunque estén repetidos, y no debería, en cambio el tercero ya sí me dice que está repetido; pero lo peor es que a partir de ahí cualquier nombre que ponga en el array me dice que ya existe. Sé que el problema está en la función, o en la forma en que meto datos en el array.
La finalidad, es lógicamente, que cuando meta un valor que ya existe, no me deje hacerlo y me diga que ya existe.
En la función imprimir lo único que hago es imprimirlo de varias formas a ver si con eso veo dónde está el fallo, es por eso que parece algo liosa, pero ahí no hay fallo.
A ver si alguien me puede echar una mano, gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class Curso{
      //atributos
 
      public $alumnos;
 
 
      public function __construct(){
          $this->alumnos=$alumnos=array(); //declaro el array en el constructor 
 
 
      }
        public function altaAlumnos($alta){
 
        if(count($this->alumnos)!=(count(array_unique($this->alumnos)))){
          echo "\n";
            echo "El Alumno $alta ya existe";
            echo "\n";
 
        }else{
            //$this->alumnos[]= $alta; //tengo esta comentada porque probé con las dos
            array_push($this->alumnos, $alta);
            echo "**El Alumno $alta ha sido dado de alta correctamente**";
            echo "\n";
            echo "\n";
 
        }
 
 
        }
        public function imprimir(){
            echo "*Con var_export: \n";
            var_export($this->alumnos);
            echo "\n ";
            echo "*Con print_r: \n";
            echo "\n ";
            print_r($this->alumnos);//indice y valor
            echo "\n ";
            echo "\n ";
            echo "*Con Foreach: ";
            echo "\n ";
            foreach ($this->alumnos as $alumno){
 
                echo $alumno." ";
            }
        }
}
$curso1=new Curso();
$curso1->imprimir();
$curso1->altaAlumnos("Juanito");
$curso1->altaAlumnos("Juanito");
$curso1->altaAlumnos("Juanito");
$curso1->altaAlumnos("Pepito");
$curso1->altaAlumnos("antonio");
echo $curso1->imprimir();
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
sin imagen de perfil

Array con función no consigo que funcione.

Publicado por EloFran (6 intervenciones) el 24/03/2018 18:29:57
Pues santi, por ahora parece que funciona con
1
in_array
, pensaba que el count era lo mismo. De todas formas voy a seguir terminando de verdad esa parte para asegurarme un poco más. Pero muchas gracias por tu ayuda. Es que es un ejercicio que me han puesto, y me lleva loco, tiene 4 clases y esta es la primera jajaja. Lo dicho gracias, si hay algo más lo comento.
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 santi
Val: 588
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Array con función no consigo que funcione.

Publicado por santi (204 intervenciones) el 24/03/2018 18:52:40
Hola,

jejeje de nada hombre, me alegro que funcione ;)

Recuerda que la función count() es para contar el número de registros dentro de un array..

Cualquier cosa ya sabes ok?

Saludos ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar