JQuery - Mal comprobacion del orden

 
Vista:
sin imagen de perfil

Mal comprobacion del orden

Publicado por Diego (5 intervenciones) el 02/01/2015 14:47:49
Estimados:

Tengo el siguiente problema.

Estoy comparando un array que viene desde un fichero en php pero con su orden alterado con el mismo array pero con su "orden correcto" hecho con jQuery UI Sortable.


es decir , por ejemplo:

array1 =[b.,d,a,c] // array que esta desordenado y que viene desde php
array2 = [a,b,c,d] // array que viene con el orden correcto desde jquery sortable

El objetivo es comparar esos dos arrays y determinar que son iguales. Es decir que estan ordenados.

El problema surge al momento se hacer la comparacion. Cuando posiciono el ultimo valor que esta en el array desordenado a su lugar correcto y compruebo orden , me compara ese valor de la ultima linea del array desordenado y del array ordenado como correcto sin tener las otras lineas correctamente ordenadas,

Es decir:

array1 =[c,a,b,d] //el valor "d" de array1 esta correctamente ordenado , pero el programa al comprobarlo lo hace como si todo el array estuviera correctamente ordenado.
array2 = [a,b,c,d]

Espero haber sido lo mas claro posible.

Mi problemas es como hacer la comparacion correctamente sin tener ese detalle de que si coloco el ultimo valor del array y lo compruebo , me tome el vector como correctamente ordenado cuando en realidad las otras lineas no estan bien ordenadas.


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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
  session_start();
   include("../capaDatos/conexion.php");
 
$nombre_fichero ='fichero.txt';
 
$lineas = file($nombre_fichero); //convierte el fichero a Array.
$lineaOrd  = file($nombre_fichero); //guardo en un array el fichero ordenado
shuffle($lineas); ?> // desordene el array $lineas
<script>
        $('#ord').sortable({
 
 
 
        });
 
         $('#comprobar').click(function(){
 
 
                        var ord = <?php echo json_encode($lineaOrd); ?>; //capturo el valor del array ordenado con
                        var s = $('#ord').sortable('toArray');
                        var flag=0;
                        var estado;
 
 
                              for(var k=0; k < ord.length ; k++){   //comprobacion del orden
 
                                if ( s[k] == ord[k] ){
                                        flag=1;
 
                                   }else{
                                            flag=0;
 
                                        }
 
                              }
 
 
              }
 
 
                          if (flag==1) {
                                    alert("Correcto");
 
                          }else if ( flag== 0) {
 
                                    alert("Incorrecto");
 
 
                                }
 
 
                  });
 
 
   });
</script>
 
<html>
  <ul id="ord" data-role="listview" data-inset="true">
 
        <?php
              foreach ($lineas as  $n=>$linea) {
             echo'<li id="'.$linea.'">'.$linea.'</li>';   //imprimo la variable linea , la cual trae el array desordenado .
         }
        ?>
    </ul>
 
</html>


Saludos y espero que puedan ayudar, si no se entiende me avisan.
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