Cita:
Iniciado por pateketrueke
Bueno, de hecho en tu código original tenías que hacer esto:
Lo digo porque analizando la solución de
gonzaherrera77 veo que tiene fallas graves.
Por ejemplo, concatena todas las claves a borrar en una cadena de texto quedando "375" por ejemplo.
Y al recorrer de nuevo la lista (innecesariamente) lo hace carácter a carácter ¿que sucedería si el índice que intentamos borrar es 99?
Pues quedaría una secuencia así "37599" pero se recorrería así "3, 7, 5, 9, 9" lo cual en definitiva es un error de concepto muy grave si se usa dicho código.
Igual quedaría mejor con un sólo loop así:
¡Bingo! ![apachar ojo](http://static.forosdelweb.com/fdwtheme/images/smilies/wink.png)
Asi es tenes razón, yo concatene la posicion de del array por que haciendo un unset($nombreProd[$i]); solo me tomaba dos posciones solo hace la 2 y 3 no se por que motivo muestro.
Código PHP:
Ver original<?php
//Array bidimencional
Array ('nombreinv' => 'Motor Lavadero', 'npiezas' => 15), Array ('nombreinv' => 'Empaque olla 4', 'npiezas' => 5 ), Array ('nombreinv' => 'REVISION ASPIRADORAS', 'npiezas' => 0 ), Array ('nombreinv' => 'camara', 'npiezas' => 0 ), Array ('nombreinv' => 'Motor Raul', 'npiezas' => 0 ), Array ('nombreinv' => 'SIN REPARACION', 'npiezas' => 0 ) );
for($i = 0; $i < count($nombreProd); $i++) { if($nombreProd[$i]['npiezas'] === 0) {
echo $i.' ';
}
}
echo '<br/>';
?>
zerobathory ahora lo encapsule en una función probalo
Código PHP:
Ver original<?php
function limpiarArray($vector) {
$i = 0;
foreach($vector as $key) {
foreach($key as $valor) {
if($valor == '0') {
$i--;
}
}
$i++;
}
return $vector;
}
//Invoco a la funcion.
$c = limpiarArray($_POST['c']);
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
<form action="limpiarArray.php" method="post">
<input type="text" name="c[0]['nombreinv']" value="Motor Lavadora Koblenz">
<input type="text" name="c[0]['npieza']" value="10"><br />
<input type="text" name="c[1]['nombreinv']" value="Empaque olla 4">
<input type="text" name="c[1]['npieza']" value="5"><br />
<input type="text" name="c[2]['nombreinv']" value="REVISION ASPIRADORAS">
<input type="text" name="c[2]['npieza']" value="0"><br />
<input type="text" name="c[3]['nombreinv']" value="camara">
<input type="text" name="c[3]['npieza']" value="0"><br />
<input type="text" name="c[4]['nombreinv']" value="SIN REPARACION">
<input type="text" name="c[4]['npieza']" value="0"><br />
<input type="submit" value="Enviar" />
</form>
</body>
</html>
Posiblemente se pueda mejorar, hasta aca llegan mis conocimiento hasta hora.
¡Saludos!