Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2013, 17:44
Erick_MD9
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Funciones para Arrays

Hola, aca les dejo unas funciones para arrays.
Cualquier comentario (bueno/malo) o mejora es bienvenido.
Saludos.

Código PHP:
    /*** IN mixed (any value),OUT (bool)true/false, CHECK if can be used by foreach ***/
    /*** Revisa si puede ser iterado con foreach ***/
    
function canVarLoop($input) {
        return (
is_array($input) || $input instanceof Traversable) ? true false;
    }
    
    
/*** IN mixed (any value),OUT (string)maxDepth ***/
    /*** Retorna la profundidad maxima de un array ***/
    
function getArrayMaxDepth($input){
        if( ! 
canVarLoop($input) ) { return "0"; }
        
$arrayiter = new RecursiveArrayIterator($input);
        
$iteriter = new RecursiveIteratorIterator($arrayiter);
        foreach (
$iteriter as $value) {
                
//getDepth() start is 0, I use 0 for not iterable values
                
$d $iteriter->getDepth() + 1;
                
$result[] = "$d";
        }
        return 
max$result );
    }

    
/*** IN mixed (any value), OUT (bool)true/false ***/
    /*** Revisa si es array con casting //maybe ¿useless?// Is faster ***/
    
function isArray($input){
        return ( (array)
$input === $input ) ? true false;
    }

    
/*** IN mixed (any value),OUT (bool)true/false, CHECK structure $var[]!='array' ¡¡NOT ACCEPT $var =='string' OR $var[]=='array'!! ***/
    /*** Revisa la estructura de array (util cuando recibes un array bien definido) ***/
    
function isValidFirstLevelArray($input){
        if( ! 
canVarLoop($input) ) { return false; }
        foreach(
$input as $value) {
            if( 
is_array($value) ){ return false; }
        }
        return 
true;
    }

    
/*** IN mixed (any value),OUT (bool)true/false, CHECK structure $var[][]!='array' ¡¡NOT ACCEPT $var[]=='string' OR $var[][]=='array'!! ***/
    /*** Revisa la estructura de array (util cuando recibes un array bien definido) ***/
    
function isValidSecondLevelArray($input){
        if( ! 
canVarLoop($input) ) { return false; }
        foreach(
$input as $value) {
            if( ! 
canVarLoop($value) ) { return false; }
            foreach(
$value as $value2) {
                if( 
canVarLoop($value2) ) { return false; }
            }
        }
        return 
true;
    } 

Última edición por Erick_MD9; 25/09/2013 a las 17:57