31. oktober 2007 - 19:50Der er
7 kommentarer og 1 løsning
Tælle udfyldte felter i et array
Jeg har en form som udskrives sådan $svar = $svar + 1; $i = 1; while($i < $svar) { echo"<tr><td>Svar $i:</td><td><input type='text' name='svar[]' size='50' maxlength='255'></td></tr>"; $i++; }
herefter skal det indsættes i databsen, og her gør jeg sådan
if ( is_array($_POST['svar']) && count( $_POST['svar'] ) > 2) { echo count($_POST['svar'] ); foreach ($_POST['svar'] as $svarvalg) {
$svarvalg = mysql_real_escape_string($svarvalg); echo"$svarvalg<br>"; } problemet er at count( $_POST['svar'] ) tæller alle felter i arrayet, men jeg ønsker kun at tælle de udfyldte felter, da der minimum skal være to udfyldte felter. jeg har prøvet med count( !empty ($_POST['svar']) ), uden held er der en som har et bud på hvordan jeg kan gøre dette?
okay så jeg skal køre det hele igennem først før jeg skal indsætte i databsen. havde håbet der var en funktion som kunne tælle det inden. Det du har lavet virker perfekt, så mange tak for hjælpen. Smid et svar så får du point
Alternativt kan du lave en funktion, der fjerne tomme værdier fra arrayet:
function array_remove_empty_values(&$array, $preservekey = 1) {
foreach ($array as $key => $value) {
if (!empty($value)) { if ($preservekey == 1) { $newarray[$key] = $value; } else { $newarray[] = $value; } }
} $array = $newarray; }
Så siger du bare array_remove_empty_values($_POST['svar']); Skal index-tallet tildeles forfra, sender du et ekstra argument med: array_remove_empty_values($_POST['svar'],0);
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.