Foros del Web » Programando para Internet » PHP »

Eliminar "una dimension" de un array

Estas en el tema de Eliminar "una dimension" de un array en el foro de PHP en Foros del Web. Me preguntaba si existia alguna funcion para hacer lo ya explicado en el titulo, es decir Código PHP: $array [ 0 ][ 0 ]= 'elemento 1' ...
  #1 (permalink)  
Antiguo 15/03/2011, 14:20
Avatar de Aaronus23  
Fecha de Ingreso: diciembre-2010
Ubicación: https://home
Mensajes: 81
Antigüedad: 13 años, 4 meses
Puntos: 4
Eliminar "una dimension" de un array

Me preguntaba si existia alguna funcion para hacer lo ya explicado en el titulo, es decir

Código PHP:
$array[0][0]='elemento 1';
$array[0][1]='elemento 2';
$array[0][2]='elemento 3'
entonces si tal o cual condicion se cumple entonces:
Código PHP:
$array[0][0]='elemento 1';
$array[0]='elemento 2';
$array[0][2]='elemento 3'
.... estos arrays bidimensionales son un infierno xD
  #2 (permalink)  
Antiguo 15/03/2011, 14:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Eliminar "una dimension" de un array

Eso es imposible, si te fijas es como si pusieras esto:
Código PHP:
Ver original
  1. $variable[0] = 'elemento1';
  2. $variable = 'elemento2';
  3. $variable[2] = 'elemento3';

No puedes eliminar esa "dimensión" de tu matriz ya que entonces pierdes todos los elementos de tu array.

Saludos.
  #3 (permalink)  
Antiguo 15/03/2011, 14:27
Avatar de Aaronus23  
Fecha de Ingreso: diciembre-2010
Ubicación: https://home
Mensajes: 81
Antigüedad: 13 años, 4 meses
Puntos: 4
Respuesta: Eliminar "una dimension" de un array

Cita:
Iniciado por GatorV Ver Mensaje
No puedes eliminar esa "dimensión" de tu matriz ya que entonces pierdes todos los elementos de tu array.


ok... entonces hay alguna manera de buscar en el array y que me devuelva los indices de ambas dimensiones?

desgraciadamente [URL="http://cr.php.net/manual/es/function.array-search.php"]array_search[/URL] no es recursivo :(
  #4 (permalink)  
Antiguo 15/03/2011, 14:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Eliminar "una dimension" de un array

Puedes usar array_search para buscar en una dimensión y posteriormente aplicar eso en una función que lo haga en la primera dimensión.

Saludos.
  #5 (permalink)  
Antiguo 15/03/2011, 14:59
Avatar de Aaronus23  
Fecha de Ingreso: diciembre-2010
Ubicación: https://home
Mensajes: 81
Antigüedad: 13 años, 4 meses
Puntos: 4
Respuesta: Eliminar "una dimension" de un array

listo! lo solucione, esta funcion era todo lo que necesitaba, lo saque de la web de php:

Código PHP:
Ver original
  1. $array[0][0]='elemento 1';
  2. $array[2][1]='elemento 2';
  3. $array[1][2]='elemento 3';  
  4. function recursiveArraySearch($haystack, $needle, $index = null)
  5. {
  6.     $aIt     = new RecursiveArrayIterator($haystack);
  7.     $it    = new RecursiveIteratorIterator($aIt);
  8.    
  9.     while($it->valid())
  10.     {      
  11.         if (((isset($index) AND ($it->key() == $index)) OR (!isset($index))) AND ($it->current() == $needle)) {
  12.             return $aIt->key();
  13.         }
  14.        
  15.         $it->next();
  16.     }
  17.    
  18.     return false;
  19. }
  20.     $val=recursiveArraySearch($array,'elemento 2');
  21. echo $val

devuelve el primer valor de ambas dimensioones del array.

en este caso el output seria 2 :D

gracias GatorV

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:10.