Johan Holst Nielsen kom med denne ide:
> Allan Madsen wrote:
>>>> Da det jo er en array man får fra databasen, ja så vil det jo være
>>>> dejligt at den nye liste med de manglende tal og de gamle tal også havner
>>>> i en array.
>>>>
>>>> Er der en måde at gøre det på, gerne uden begrænsning i størrelsen af
>>>> arrayen??
>>>
>>> Sådan - så var spørgsmålet bedre formuleret end sidst ;)
>>>
>>> Okay - lets go....
>>>
>>> Jeg forventer følgende:
>>> - Col 1 første værdi skal ALTID være 1
>>> - Array er opbygget således:
>>> $array[] = array('col1'=>1,'col2'=>'40')
>>> $array[] = array('col1'=>2,'col2'=>'70')
>>> ... osv.
>>> - Col 1 er altid unikt
>>>
>>> I så fald kan det gøres således:
>>> <?php
>>> //ændre array til noget mere spiseligt
>>> $data = array();
>>> $max = 0;
>>> foreach($array as $a) {
>>> if(intval($a['col1'])>$max) { $max = intval($a['col1']); }
>>> $data[intval($a['col1'])] = $a['col2'];
>>> }
>>> /*
>>> Array er nu
>>> $data[1] = '40';
>>> $data[2] = '70';
>>> ...
>>> */
>>> for($i=1;$i<=$max;$i++) {
>>> if(empty($data[$i])) {
>>> $data[$i] = 0;
>>> }
>>> }
>>> ?>
>>>
>>> Måske findes der en smartere måde - men ovenstående bør virke :)
>>
>> Nej Arrayen er bygger $line = mysql_fetch_array($result, MYSQL_ASSOC)
>> Og hver linie i tabellem indeholder et tal(dag) og et andet tal (Kg)
>> Men der er ikke hver dag der er nogle kg at taste ind så der vil ikke være
>> en post i tabellen for den dag, men så er det jeg gerne vil at retur
>> arrayen kommer til også at indeholde den/de manglende dage men hvor Kg så
>> er sat til 0.
>>
>> Ja det kan nogen gange være svært at formuler et spørgsmål over for folk
>> som selvf. ikke ved noget om det man har gang i.
>>
>>
>
> Hej,
>
> Så bør du også sagnes kunne bruge ovenstående script....
>
> Det vil i så fald se noget ala således ud
>
> <?php
> $data = array();
> $max = 0;
> while($line = mysql_fetch_array($result,MYSQL_ASSOC))
> if(intval($line['col1'])>$max) { $max = intval($line['col1']); }
> $data[intval($line['col1'])] = $line['col2'];
> }
> for($i=1;$i<=$max;$i++) {
> if(empty($data[$i])) {
> $data[$i] = 0;
> }
> }
>
> var_dump($data);
> ?>
>
>
> Du skal så ændre "col1" til navnet på den celle der indholder dag, og col2
> til din celle der indeholder kg.
>
> Du kan så udskrive den noget ala
>
> foreach($data as $dag=>$kg) {
> echo "Dag ".$dag." - ".$kg." kg.<br />";
> }
Så har jeg testet det...
Sådan ser det ud.
array(16) { [1]=> string(2) "50" [3]=> string(2) "75" [5]=>
string(2) "75" [7]=> string(2) "50" [8]=> string(2) "50" [10]=>
string(2) "50" [12]=> string(2) "75" [14]=> string(2) "75" [16]=>
string(2) "50" [2]=> int(0) [4]=> int(0) [6]=> int(0) [9]=> int(0)
[11]=> int(0) [13]=> int(0) [15]=> int(0) }
Hvordan kan det være at nogle er en streng og andre er int??
Hvad er det den function hedder der kan sorter en array??