Vraag mbt arrays opdelen
//$deArray
Array ( [0] => Array (
[2007] => 50
[2008] => 33
[2009] => 20 )
[1] => Array (
[2007] => 18
[2008] => 19
[2009] => 100 )
[2] => Array (
[2007] => 15
[2008] => 25
[2009] => 7 ) )
Nu heb ik dus een script die een grafieken kan tekenen en die vraagt als input een array (of, meerdere arrays om meerdere lijnen te tekenen). Nu moet ik dus deze arrays splitsen naar 3 losse arrays (elke array kan dan een lijn genereren). Maar mijn probleem zit hem in het feit dat de Array ($deArray) uit meerdere arrays kan bestaan. In de uitdraai hierboven zijn het er 3, maar het kunnen er net zo goed 6 of 8 zijn.
Dus mijn probleem zit hem dus in het feit van, hoe maak ik de variabelen aan? Aangezien ik niet simpelweg kan doen $array1 = $deArray[][0]; $array2=$deArray[][1]; $dearray3=$deArray[][2] (of iets in die trend, weet de syntax ff niet :P). Maar als ik het zo doe gaat het niet werken omdat er (zoals eerder is gezegd) niet altijd 3 arrays aanwezig zijn maar het kunnen er meer zijn.
Is het misschien op de 1 of andere manier mogelijk om dynamisch variabelen aan te maken om dit te regelen?
Dit was een lang verhaal, ik hoop dat het probleem duidelijk is ;P
Misschien heb je aan onderstaande wat.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
#| De array met grafiek data.
$grafiek_data = array(
0 => array(
2007 => 50,
2008 => 33,
2009 => 20
),
1 => array(
2007 => 18,
2008 => 19,
2009 => 100
),
2 => array(
2007 => 15,
2008 => 25,
2009 => 7
)
);
#| Het aantal lijnen in de grafiek tellen en weergeven.
echo 'Deze grafiek bevat '.count($grafiek_data).' lijnen.<br />';
#| Alle lijnen doorlopen.
foreach($grafiek_data as $lijn => $coordinaten){
#| Het nummer van de huidige lijn weergeven.
echo 'Dit zijn de coordinaten van lijn '.($lijn + 1).': ';
#| Alle coordinaten weergeven.
foreach($coordinaten as $coordinaat){
echo $coordinaat.'.';
}
#| Volgende lijn op een nieuwe regel plaatsen.
echo '<br />';
}
?>
#| De array met grafiek data.
$grafiek_data = array(
0 => array(
2007 => 50,
2008 => 33,
2009 => 20
),
1 => array(
2007 => 18,
2008 => 19,
2009 => 100
),
2 => array(
2007 => 15,
2008 => 25,
2009 => 7
)
);
#| Het aantal lijnen in de grafiek tellen en weergeven.
echo 'Deze grafiek bevat '.count($grafiek_data).' lijnen.<br />';
#| Alle lijnen doorlopen.
foreach($grafiek_data as $lijn => $coordinaten){
#| Het nummer van de huidige lijn weergeven.
echo 'Dit zijn de coordinaten van lijn '.($lijn + 1).': ';
#| Alle coordinaten weergeven.
foreach($coordinaten as $coordinaat){
echo $coordinaat.'.';
}
#| Volgende lijn op een nieuwe regel plaatsen.
echo '<br />';
}
?>
De grafiek wordt aangeroepen met:
$grafiek->bouwOp($data, $data2) - Dit moeten dus de verschillende arrays zijn.
Op zich weet ik wel hoe ik de arrays kan ophalen met foreach maar ik moet ze ook naar een x.aantal verschillende variabelen kunnen schrijven, dus misschien een soort dynamische variabelen of zoiets :P?
Gewijzigd op 04/08/2010 15:06:09 door task b
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
#| De array met grafiek data.
$grafiek_data = array(
0 => array(
2007 => 50,
2008 => 33,
2009 => 20
),
1 => array(
2007 => 18,
2008 => 19,
2009 => 100
),
2 => array(
2007 => 15,
2008 => 25,
2009 => 7
)
);
#| Dit is wat je probeert te bereiken?
$lijn_1 = array(
2007 => 50,
2008 => 33,
2009 => 20
);
$lijn_2 = array(
2007 => 18,
2008 => 19,
2009 => 100
);
$lijn_3 = array(
2007 => 15,
2008 => 25,
2009 => 7
);
#| Maar wat is er mis met het volgende.
$grafiek_data[0] // Heeft dezelfde waarde als $lijn_1.
$grafiek_data[1] // Heeft dezelfde waarde als $lijn_2.
$grafiek_data[2] // Heeft dezelfde waarde als $lijn_3.
?>
#| De array met grafiek data.
$grafiek_data = array(
0 => array(
2007 => 50,
2008 => 33,
2009 => 20
),
1 => array(
2007 => 18,
2008 => 19,
2009 => 100
),
2 => array(
2007 => 15,
2008 => 25,
2009 => 7
)
);
#| Dit is wat je probeert te bereiken?
$lijn_1 = array(
2007 => 50,
2008 => 33,
2009 => 20
);
$lijn_2 = array(
2007 => 18,
2008 => 19,
2009 => 100
);
$lijn_3 = array(
2007 => 15,
2008 => 25,
2009 => 7
);
#| Maar wat is er mis met het volgende.
$grafiek_data[0] // Heeft dezelfde waarde als $lijn_1.
$grafiek_data[1] // Heeft dezelfde waarde als $lijn_2.
$grafiek_data[2] // Heeft dezelfde waarde als $lijn_3.
?>
Code (php)
1
2
3
4
5
2
3
4
5
<?php
//deze tekent (afhankelijk van hoeveel paramters je opgeeft een grafiek met een
//x aantal lijnen daarop)
$grafiek->bouwOp($grafiek_data[0], grafiek_data[1], grafiek_data[2]);
?>
//deze tekent (afhankelijk van hoeveel paramters je opgeeft een grafiek met een
//x aantal lijnen daarop)
$grafiek->bouwOp($grafiek_data[0], grafiek_data[1], grafiek_data[2]);
?>
dan werkt dat misschien wel (zal dat is testen daar was ik nie opgekomen) maar dan loop ik tegen het probleem op dat als er 5 keer grafiek_data aanwezig is, dat hij dan dit automatisch zou moeten aanroepen:
Code (php)
1
2
3
2
3
<?php
$grafiek->bouwOp($grafiek_data[0],$grafiek_data[1],$grafiek_data[2],$grafiek_data[3],$grafiek_data[4]);
?>
$grafiek->bouwOp($grafiek_data[0],$grafiek_data[1],$grafiek_data[2],$grafiek_data[3],$grafiek_data[4]);
?>
Dus eigenlijk ligt het probleem in het feit dat: hoe ik dynamisch de functie bouwOp() kan aanroepen met de juiste paramters (aangezien het aantal parameters steeds wisselt)?
In ieder geval alvast bedankt voor de hulp maar kan ff niet meer responden moet de deur uit, maar zal morgen weer verder lezen, alvast bedankt :)
Gewijzigd op 04/08/2010 16:27:57 door task b
Gewijzigd op 04/08/2010 16:37:06 door - Mark -
Is hier $grafiek_data[0] een array()?
ook doen:
En uiteraard kun je in de methode van ieder 1D element in $grafiek_data ook variabelen maken:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
foreach( $grafiek_data as $key => $value )
{
$sVarName = 'element' . $key;
$$sVarName = $value;
}
?>
foreach( $grafiek_data as $key => $value )
{
$sVarName = 'element' . $key;
$$sVarName = $value;
}
?>
Ik werk niet vaak met variabele variabelen maar volgens mij kon het op deze manier.
Wel erg nutteloos om te doen maar goed het kan.
Gewijzigd op 04/08/2010 20:55:19 door Martijn B