13. februar 2006 - 14:37
Der er
26 kommentarer og 1 løsning
Fjern i Array.
Hej allesammen. Har et lille problem. Har en $Var som er et array hvor indholdet kan være: 1,2,null,4,null,null,null Jeg vil derfor gerne slette alle ,"null". Kender i en smart funktion til det ? På forhånd tak...
Annonceindlæg fra Deloitte
13. februar 2006 - 14:44
#1
Så vidt jeg husker: $Var = array_unique( $Var );
13. februar 2006 - 14:45
#2
Det sletter vel ikke alle hvor værdien er "null" ?
13. februar 2006 - 14:46
#3
Det skal lige siges, at hvis du f.eks. har flere entries med samme værdi, så har du nu kun én af hver ;) Ellers kan du måske lave noget a la: function &array_remove_nulls( &$array ) { $tmp = array(); foreach ( $array as $item ) { if ( !is_null( $item ) ) $tmp[] = $item; } return $tmp; }
13. februar 2006 - 14:49
#4
hvordan vil du så kalde den ? array_remove_nulls($var) ikke ?
13. februar 2006 - 14:51
#5
13. februar 2006 - 14:51
#6
hmm hvordan vil du så gøre deT?
13. februar 2006 - 14:52
#7
function fjern($var) { return($var == null); }
13. februar 2006 - 14:54
#8
Bare med $Var = array_remove_nulls( $Var ); showsource's og din sidste ville sikkert også virke :)
13. februar 2006 - 16:41
#9
coderdk >> Mht dit eksempel bør det vel være som nedenstående for at sikre at evt objectref bibeholdes... function &array_remove_nulls( &$array ) { $tmp = array(); for ( $i=0; $i < count($array); $i++ ) { if ( !is_null( $array[$i] ) ) $tmp[] =& $array[$i]; } return $tmp; }
13. februar 2006 - 16:43
#10
...ellers giver det ingen mening at lade det være en "reference funktionen"
13. februar 2006 - 16:46
#11
For denne fejl : Fatal error: Cannot create references to/from string offsets nor overloaded objects in /home/www/web82/html/mysex/split.php on line 19 Kan det havde noge at gøre med jeg definere mig array forkert ? Sådan gør jeg i en while : $Var .= $_POST["Var" .$i] .",";
13. februar 2006 - 16:50
#12
Hvis du vill loope igennem dit postarray og nappe det der er sat og starter med Var skal du gøre sådan her: foreach( $_POST as key => $value ){ ... }
13. februar 2006 - 16:53
#13
måske er det i virkeligheden dette du søger: $Var = array(); foreach( $_POST as $key => $value ){ if( strpos($key, "Var") !== false && !empty($value) ){ $Var[] = $value; } }
13. februar 2006 - 23:18
#14
Kan ikke få det til at virke. HAr $Var som indeholder = 1,2,null,4,6,null Null = en værdi som jeg har smidt ind.. De skal nu væk !.. Der er flere af dem.. Hvad gør jeg ?
14. februar 2006 - 07:52
#15
Så brug function fjern( $array ) { $tmp = array(); foreach ( $array as $item ) { if ( !is_null( $item ) ) $tmp[] = $item; } return $tmp; } $Var = fjern( $Var );
14. februar 2006 - 08:48
#16
Tror du misfostår mig.. Det kunne ligeså godt være 1 der skulle fjernes.
14. februar 2006 - 08:53
#17
Øhhh.. Umiddelbart har du jo ikke et array, men en komma-separeret streng... Derfor er der ingen af tingene der virker, da du ikke har et array.
14. februar 2006 - 08:55
#18
Det her genere jo bare en komma-separeret streng: $Var .= $_POST["Var" .$i] .","; vil anbefale du bruger horsmarks kode fra 13/02-2006 16:53:13.. den sætter det ind i et array uden NULL
14. februar 2006 - 08:55
#19
vel og mærke uden du laver denne her først: $Var .= $_POST["Var" .$i] .",";
15. februar 2006 - 17:23
#20
Det ville ikke være smart i den sammenhæng jeg skal bruge det. Der må da findes en måde til at fjerne ting i sådanne strenge: 3,5,3,2,6,4,5,3,3 Lad os bare sige det er 5 som skal fjernes. Hvad med Reg ?
15. februar 2006 - 17:29
#21
hvis du vil fjerne alle 5-taller fra den.. gør du bare således her: $var = str_replace(5,"", $var);
15. februar 2006 - 17:29
#22
aghrr... sorry $var = str_replace(",5","", $var);
15. februar 2006 - 17:30
#23
den virker så bare ikke hvis fem er først.... men det kan jo bare laves..
15. februar 2006 - 17:33
#24
$Var = "3,5,3,,6,4,5,3,3"; var_dump($Var); $Var = explode(",", $Var); $tmpVar = array(); for($i=0;$i<count($Var);$i++){ if( !empty($Var[$i]) ) $tmpVar[] = $Var[$i]; } $Var = $tmpVar; $Var = implode(",",$Var); var_dump($Var);
15. februar 2006 - 23:27
#25
Takker.. Svar og pointsne er dine :D
16. februar 2006 - 10:45
#26
allrighty here goes... fint det spiller
16. februar 2006 - 10:45
#27
_her_ er et svar
Vi tilbyder markedets bedste kurser inden for webudvikling