Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/10/2003, 14:09
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Debido a la naturaleza de los arrays en PHP (son mas bien mapas, creo que se llamban en otros lenguajes), no puedes establecer nada global del array sin recorrer todo el array. En PHP un array valido es:
Código PHP:
$array[0]=array(1,3,5,7);
$array[1]='PHP';
$array[2]=array(2,4,6,8,10);
$array[3]=33
Con lo que para saber si es bidimensional o no, deberias hacer una funcion que recorra todos los elementos del array. Para cada elemento, si no es array, devolver false (no es bidimensional), y si es array recorrer cada elemento de ese elemento. Si alguno de esos elementos es un array, devolver false. Si una vez llegado al fina, no se ha devuelto false, se devuelve true (si es solo bidimensional). Asi de cabeza podria ser:
Código PHP:
/* bool es_bidimensional($array)
     
    devuelve true si $array es solo bidimensional, false en caso contrario.
*/

function es_bidimensional($array) {
  if (!
is_array($array)) return false;  // paranoia si no nos pasan un array

  
foreach ($array as $elemento) {
    if (!
is_array($elemento)) return false
    foreach (
$elemento as $elem) {
      if (
is_array($elem)) return false;
    }
  }
  
  return 
true;
}

// ejemplos
$array=array();
$array[0]=array(1,3,5,7);
$array[1]='PHP';
$array[2]=array(2,4,6,8,10);
$array[3]=array(array(1,2,3));

echo (
es_bidimensional($array))?'verdad':'falso';
echo 
'<br>';

$array=array();
$array[0]=array(1,3,5,7);
$array[1]=array(2,4,6,8,10);
$array[2]=array(array(1,2,3));

echo (
es_bidimensional($array))?'verdad':'falso';
echo 
'<br>';

$array=array();
$array[0]=array(1,3,5,7);
$array[1]=array(2,4,6,8,10);

echo (
es_bidimensional($array))?'verdad':'falso';
echo 
'<br>'
Claro, tomando como solo bidimensional que pueda tener elementos como el 0 y el 2 del ejemplo a la vez. Si ademas quieres que tenga los mismo elementos en cada elemento, queda como ejercicio para el lector

Espero que era esto lo que preguntabas.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.