Erlend Klakegg Bergheim skrev:
> YJ skrev:
>> Jeg har et array, som indeholder nogle tal og nogle NULLs.
>>
>> Jeg ønsker at få alle NULLs til at være 0.
>>
>> Det kan jeg klare på denne måde:
>>
>>
>> for ($a=0; $a<count($arr_Return); $a++)
>> {
>> if ($arr_Return [$a] == False) $arr_Return [$a] = 0;
>> }
>>
>> Men er der mon ikke en smartere måde?
>
> for($a=0; $a<count($arr_Return); $a++)
> {
> $arr_Return[$a] = is_null($arr_Return[$a]) ? 0 : $arr_Return[$a];
> }
>
> Man kommer seg ikke så lett utenom, da det såvidt jeg vet ikke finnes
> noen metode i PHP som gjør det for oss, men når vi først skal gjøre det
> må vi i det minste gjøre det riktig. "false" og "null" er ikke det
> samme, og bør ikke behandles som det samme heller. :)
>
> I min kode kunne man snudd om og spurt om det er et tall:
>
> for($a=0; $a<count($arr_Return); $a++)
> {
> $arr_Return[$a] = is_int((int) $arr_Return[$a]) ? (int)
> $arr_Return[$a] : 0;
> }
>
> Skal vi se på korrektheten av kode, så er det siste eksempelet det
> beste, for da vet du helt sikkert at $arr_Return består av _kun_ tall.
> (Det kunne jo sneket seg inn en string eller noe annet stygt... ;)
>
> Du må forandre til float hvis du er interessert i noe annet enn kun
> heltall.
>
>
http://php.net/is_null
>
http://php.net/is_int
>
http://php.net/is_float
>
Det ble noe mye int her... Slik skal det være:
for($a=0; $a<count($arr_Return); $a++)
{
$arr_Return[$a] = is_int($arr_Return[$a]) ? (int)
$arr_Return[$a] : 0;
}
--
Vennlig hilsen
Erlend Klakegg Bergheim