Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/11/2015, 21:42
zerobathory
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 3 meses
Puntos: 1
Como recorrer un array y eliminar valores?

Les explico, estoy haciendo un sistema de inventarios con php, sql, html, javascript, etc...., en el cual va a haber una seccion en la que se hace un pedido de inventario, es decir, va a ser una pantalla en la que se van a mostrar todos los productos que hay, cuantas existencias y un recuadro en donde va a ponerse el numero de piezas que se necaesita pedir de ese prodcuto, como esto:



En cuanto al codigo para saber que numero de piezas son las que piden y el nombre del inventario, el formulario lo tengo asi...

Código PHP:
Ver original
  1. $consul="SELECT * FROM ".$prefijo."_inventario ORDER BY idinventario ASC";
  2.                 $query=$con->query($consul);
  3.                 for($x=1; $x<=$query->rowcount(); $x++){
  4.                         $array=$query->fetch(PDO::FETCH_ASSOC);
  5.                         echo"<tr>";
  6.                         echo "<td>".$array['nombreinventario']."<input type='hidden' name='contr[$x][nombreinv]' value='".$array['nombreinventario']."'></td>";
  7.                         echo "<td>".$array['piezas']."</td>";
  8.                         echo "<td><input type='text' class='form-control' name='contr[$x][npiezas]' value='0'></td>";
  9.                         echo"</tr>";
  10.                 }

Para insertarlo en la base de datos pues se envia todo como array, y lo que quiero es recorrer el array y eliminar los nombres de inventario que el numero de piezas sea igual a 0... El array sin eliminar lo que quiero, me lo manda asi:

Código:
Array ( [1] => Array ( [nombreinv] => Motor Lavadora Koblenz [npiezas] => 10 ) [2] => Array ( [nombreinv] => Empaque olla 4" [npiezas] => 5 ) [3] => Array ( [nombreinv] => REVISION ASPIRADORAS [npiezas] => 0 ) [4] => Array ( [nombreinv] => camara [npiezas] => 0 ) [5] => Array ( [nombreinv] => Motor Raul 1 [npiezas] => 0 ) [6] => Array ( [nombreinv] => SIN REPARACION [npiezas] => 0 ) )
Y al recorrer el array y eliminar las piezas que estan en cero, quiero que aparezca asi...

Código:
Array ( [1] => Array ( [nombreinv] => Motor Lavadora Koblenz [npiezas] => 10 ) [2] => Array ( [nombreinv] => Empaque olla 4" [npiezas] => 5 ) )
Pero no se muy bien como recorrer el array y haga lo que quiero, se que se puede hacer algo asi:

Código PHP:
Ver original
  1. $arraytodo=$_POST['contr'];
  2. foreach($arraytodo as $key => $val){
  3.     if($val['npiezas'] == 0 ){
  4.         unset($key);
  5.     }
  6. }

Pero no pasa nada y me sigue imprimiendo todo... Alguien me ayuda a saber como puedo hacerlo?

Última edición por zerobathory; 19/11/2015 a las 21:49