Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/12/2011, 10:03
Dago1988
 
Fecha de Ingreso: noviembre-2009
Mensajes: 15
Antigüedad: 14 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Usar unset() en array multidimensional

Gracias por la respuesta. No, no conocía esa función, pero funcionó.
De todas maneras me gustaría saber por qué el código anterior no funciona
El código modificado es:
Código PHP:
<?php
  
// Matriz tridimensional
  
$matriz3d = array(
    
=> array(
      
'nombre' => 'Juan',
      
'apellido' => 'Perez',
      
'edad' => '23',
      
'intereses' => array('futbol''tenis''basquet')
    ),
    
=> array(
      
'nombre' => 'Martin',
      
'apellido' => 'Pescador',
      
'edad' => '19',
      
'intereses' => array('futbol''cine')
    ),
    
=> array(
      
'nombre' => 'Micaela',
      
'apellido' => 'Diaz',
      
'edad' => '25',
      
'intereses' => array('cine''hockey')
    ),
    
=> array(
      
'nombre' => 'Paola',
      
'apellido' => 'Sanchez',
      
'edad' => '21',
      
'intereses' => 'libros'
    
)
  );

  
$tag 'futbol';
  function 
sacaLaGrasa($sel)
  {
    global 
$tag;
    if ( isset(
$sel['intereses']) )
    {
      if ( 
is_array($sel['intereses']) )
      {
        foreach ( 
$sel['intereses'] as $key => $val )
        {
          if ( 
$sel['intereses'][$key] == $tag )
          {
            return 
true;
          }
          elseif ( 
$val == end($sel['intereses']) )
          {
            return 
false;
          }
          else
          {
            continue;
          };
        };
      }
      else
      {
        if ( 
$sel['intereses'] == $tag )
        {
          return 
true;
        }
        else
        {
          return 
false;
        };
      };
    }
    else
    {
      return 
false;
    };
  };
  
  echo 
'<pre>$matriz3d antes de llamar a la función'."\n";
  
print_r($matriz3d);
  echo 
'</pre>'."\n";
  

  
$matriz3d array_filter($matriz3d'sacaLaGrasa');

  echo 
'<pre>$matriz3d luego de llamar a la función'."\n";
  
print_r($matriz3d);
  echo 
'</pre>'."\n";

?>
Gracias de nuevo SetheR.

Última edición por Dago1988; 17/12/2011 a las 10:48