/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Tømme array for tomme pladser?
Fra : Mr J..


Dato : 30-11-07 13:56

Hej alle...

Jeg har et array der ser således ud:

Array ( [0] => 6692 [1] => 1500 [2] => 1553 [3] => 1741 [4] => 6696 [5] =>
5208 [6] => 6716 [7] => 1715 [8] => 6740 [9] => 6473 [10] => 6788 [11] =>
1729 [12] => 6574 [13] => 6338 [14] => )

Hvis jeg laver en count() på det får jeg værdien 15, og jeg skal bruge
tallet 14, hvordan får jeg tømt et array for tomme pladser?

At lave et nyt array således:

foreach($testx as $val){
IF($val != '' or $val != ' '){
$numbers[]=$val;
}
}

Virker ikke rigtigt :(

Nogle der har en god ide?

Mvh
Morten



 
 
Birger (30-11-2007)
Kommentar
Fra : Birger


Dato : 30-11-07 15:13

"Mr J.." <Nomail@nomail.dk> skrev i en meddelelse
news:47500868$0$90269$14726298@news.sunsite.dk...
> Hej alle...
>
> Jeg har et array der ser således ud:
>
> Array ( [0] => 6692 [1] => 1500 [2] => 1553 [3] => 1741 [4] => 6696 [5] =>
> 5208 [6] => 6716 [7] => 1715 [8] => 6740 [9] => 6473 [10] => 6788 [11] =>
> 1729 [12] => 6574 [13] => 6338 [14] => )
>
> Hvis jeg laver en count() på det får jeg værdien 15, og jeg skal bruge
> tallet 14, hvordan får jeg tømt et array for tomme pladser?
>
> At lave et nyt array således:
>
> foreach($testx as $val){
> IF($val != '' or $val != ' '){
> $numbers[]=$val;
> }
> }
>
> Virker ikke rigtigt :(
>
> Nogle der har en god ide?
>
> Mvh
> Morten
>

$testx = array_filter( $testx);

skulle vist gøre lige præcis det...

Birger



Dan Storm (30-11-2007)
Kommentar
Fra : Dan Storm


Dato : 30-11-07 15:17

Mr J.. skrev:
> Nogle der har en god ide?

function remove_empty($value)
{
if($value != "")
return $value;
}

$array = array_filter($array, "remove_empty");
print_r($array);

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Peter Brodersen (30-11-2007)
Kommentar
Fra : Peter Brodersen


Dato : 30-11-07 17:15

On Fri, 30 Nov 2007 15:17:19 +0100, Dan Storm
<shadyz@_REMOVETHIS_err0r.dk> wrote:

>function remove_empty($value)
>{
> if($value != "")
> return $value;
>}
>
>$array = array_filter($array, "remove_empty");

Hvis man undlader en callback-funktion, bliver en funktion afviklet,
der gør nærmest det samme:

"If no callback is supplied, all entries of input equal to FALSE
(see converting to boolean) will be removed."

I begge tilfælde er der dog risikoen for at værdien 0 også bliver
smidt ud.

--
- Peter Brodersen
Kendt fra Internet

Dan Storm (30-11-2007)
Kommentar
Fra : Dan Storm


Dato : 30-11-07 19:53

Peter Brodersen skrev:
> On Fri, 30 Nov 2007 15:17:19 +0100, Dan Storm
> <shadyz@_REMOVETHIS_err0r.dk> wrote:
>
>> function remove_empty($value)
>> {
>> if($value != "")
>> return $value;
>> }
>>
>> $array = array_filter($array, "remove_empty");
>
> Hvis man undlader en callback-funktion, bliver en funktion afviklet,
> der gør nærmest det samme:
>
> "If no callback is supplied, all entries of input equal to FALSE
> (see converting to boolean) will be removed."
>
> I begge tilfælde er der dog risikoen for at værdien 0 også bliver
> smidt ud.
>

Jeg ville kontrollere $value som en streng, fremfor integer idet jeg så
mener den bør beholde 0, men jeg har dog ikke testet det.


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Birger (01-12-2007)
Kommentar
Fra : Birger


Dato : 01-12-07 00:21

"Dan Storm" <shadyz@_REMOVETHIS_err0r.dk> skrev i en meddelelse
news:47505c12$0$15881$edfadb0f@dtext01.news.tele.dk...
> Peter Brodersen skrev:
>> On Fri, 30 Nov 2007 15:17:19 +0100, Dan Storm
>> <shadyz@_REMOVETHIS_err0r.dk> wrote:
>>
>>> function remove_empty($value)
>>> {
>>> if($value != "")
>>> return $value;
>>> }
>>>
>>> $array = array_filter($array, "remove_empty");
>>
>> Hvis man undlader en callback-funktion, bliver en funktion afviklet,
>> der gør nærmest det samme:
>>
>> "If no callback is supplied, all entries of input equal to FALSE
>> (see converting to boolean) will be removed."
>>
>> I begge tilfælde er der dog risikoen for at værdien 0 også bliver
>> smidt ud.
>>
>
> Jeg ville kontrollere $value som en streng, fremfor integer idet jeg så
> mener den bør beholde 0, men jeg har dog ikke testet det.
>
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> Tro ikke brugerne vil gøre noget for at undgå dit killfilter
> - Så vigtig er du heller ikke!


En streng '0' er specifikt nævnt som værende false - og vil altså blive
fjernet fra arrayet.

Birger



Bertel Lund Hansen (01-12-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 01-12-07 11:53

Birger skrev:

> En streng '0' er specifikt nævnt som værende false - og vil altså blive
> fjernet fra arrayet.

Hvis man tester sådan:

   if ($value !== "")

vil 0 ikke blive fjernet. Det er et typestærkt tjek.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Martin (02-12-2007)
Kommentar
Fra : Martin


Dato : 02-12-07 07:09

Birger wrote:
> "Dan Storm" <shadyz@_REMOVETHIS_err0r.dk> skrev i en meddelelse
> news:47505c12$0$15881$edfadb0f@dtext01.news.tele.dk...
>> Peter Brodersen skrev:
>>> On Fri, 30 Nov 2007 15:17:19 +0100, Dan Storm
>>> <shadyz@_REMOVETHIS_err0r.dk> wrote:
>>>
>>>> function remove_empty($value)
>>>> {
>>>> if($value != "")
>>>> return $value;
>>>> }
>>>>
>>>> $array = array_filter($array, "remove_empty");
>>> Hvis man undlader en callback-funktion, bliver en funktion afviklet,
>>> der gør nærmest det samme:
>>>
>>> "If no callback is supplied, all entries of input equal to FALSE
>>> (see converting to boolean) will be removed."
>>>
>>> I begge tilfælde er der dog risikoen for at værdien 0 også bliver
>>> smidt ud.
>>>
>> Jeg ville kontrollere $value som en streng, fremfor integer idet jeg så
>> mener den bør beholde 0, men jeg har dog ikke testet det.
>>
>>
>> --
>> Dan Storm - storm at err0r dot dk / http://err0r.dk
>>
>> Tro ikke brugerne vil gøre noget for at undgå dit killfilter
>> - Så vigtig er du heller ikke!
>
>
> En streng '0' er specifikt nævnt som værende false - og vil altså blive
> fjernet fra arrayet.

Så bruger man bare
if(empty($value)) // Hvis '0' så bliver det ikke fjernet

>
> Birger
>
>

Peter Brodersen (02-12-2007)
Kommentar
Fra : Peter Brodersen


Dato : 02-12-07 08:18

On Sun, 02 Dec 2007 07:09:03 +0100, Martin <martin@aarhof.eu.invalid>
wrote:

>Så bruger man bare
>if(empty($value)) // Hvis '0' så bliver det ikke fjernet

Jo, også empty() giver sandt for at 0 og "0". Fra manualen:
http://dk2.php.net/empty

The following things are considered to be empty:

* "" (an empty string)
* 0 (0 as an integer)
* "0" (0 as a string)
* NULL
* FALSE
* array() (an empty array)
* var $var; (a variable declared, but without a value in a class)

--
- Peter Brodersen
Kendt fra Internet

Martin (02-12-2007)
Kommentar
Fra : Martin


Dato : 02-12-07 18:30

Peter Brodersen wrote:
> On Sun, 02 Dec 2007 07:09:03 +0100, Martin <martin@aarhof.eu.invalid>
> wrote:
>
>> Så bruger man bare
>> if(empty($value)) // Hvis '0' så bliver det ikke fjernet
>
> Jo, også empty() giver sandt for at 0 og "0". Fra manualen:
> http://dk2.php.net/empty

Hovsa :)

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste