Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2010, 19:41
martuanez
 
Fecha de Ingreso: julio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 0
Renumerar objetos...

Puede que esté muy cerca pero estoy fallando en la lógica...
La idea es tomar elementos de un array que ya tienen un valor numerico y reodenarlos de 1 en adelante ya tengo hecho parte del asunto donde filtro y valido los datos a reorganizar, pero para asegurarme de que no se le asignará un numero en uso a otro objeto cree un array que tiene los numeros que no se pueden asignar, entonces supongamos que tengo el numero 10 como en el ejemplo aqui debajo, entonces como el 10 ya existe en el array $categorias, le sumo uno y vuelvo a probar (aquí es donde se me arma lío...) en el codigo que tengo armado si empiezo con 10 me devuelve 12 pero si le doy un 30 por ejemplo, no me devuelve 32 como debería ....

El codigo:

Código PHP:
function nosemueven($n_asignable$no_se_mueven){
    global 
$Num_nuevo;
   
     foreach (
$no_se_mueven as $value){
        if(
$n_asignable==$value){
            
$n_asignable=$n_asignable+1;
        }
        else {
            if(
array_search($n_asignable,$no_se_mueven))
        {
nosemueven($n_asignable$no_se_mueven);}else{
            
$Num_nuevo=$n_asignable;break;}
            
    };
}
echo 
"Numero nuevo 2 dentro de la funcion ".$Num_nuevo."<br/>";
}

//Numeros ya en uso , o sea no asignables
$categorias=array(10,11,12,13,20,30,31,40,41,50,60);


$numero_prueba=30;
nosemueven($numero_prueba$categorias); 
La variable N_asignable es el numero candidato a ser otorgado a quien le corresponda, eso si no existe en el array $categorías, cuando se comprueba que no existe pasa a llamarse Num_nuevo y se le asigna a quien le toque y se pasa al siguiente objeto.
Se aceptan sugerencias, graciassssss!!!