Array help

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frederick Dekempe

Frederick Dekempe

05/10/2022 15:23:46
Quote Anchor link
Hallo,

Ik heb een vraagje ivm arrays aangemaakt via data uit sql tabel. Met deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
        $stmt = $pdo->prepare("SELECT ploeg,werkpost,maandag,dinsdag,woensdag,donderdag,vrijdag FROM weekoverzicht");
        $stmt->execute();
        $overzicht = $stmt->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_GROUP);


krijg ik volgend resultaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
Array
(
    [A] => Array
        (
            [0] => Array
                (
                    [werkpost] => Brigadier
                    [maandag] => W
                    [dinsdag] => W
                    [woensdag] => W
                    [donderdag] => W
                    [vrijdag] => W
                )

            [1] => Array
                (
                    [werkpost] => Marina
                    [maandag] => C
                    [dinsdag] => C
                    [woensdag] => C
                    [donderdag] => C
                    [vrijdag] => -
                )

        )

Nu wil ik volgend resultaat bekomen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Array
(
    [A] => Array
        (
            [Brigadier] => Array
                (
                    [maandag] => W
                    [dinsdag] => W
                    [woensdag] => W
                    [donderdag] => W
                    [vrijdag] => W
                )

            [Marina] => Array
                (
                    [maandag] => C
                    [dinsdag] => C
                    [woensdag] => C
                    [donderdag] => C
                    [vrijdag] => -
                )

        )


Hoe kan ik dit verkrijgen?
Gewijzigd op 05/10/2022 19:06:51 door Frederick Dekempe
 
PHP hulp

PHP hulp

04/12/2022 17:10:57
 
Rob Doemaarwat

Rob Doemaarwat

05/10/2022 16:53:47
Quote Anchor link
Ik kan je output niet helemaal rijmen met je code, maar als je een array hebt waarbij je als key een waarde uit de records wilt gebruiken, dan kun je:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

$data
= [...]; //array van records
$data = array_combine(
  array_column($data,'werkpost'), //keys afleiden uit kolom "werkpost"
  $data //bestaande records behouden (dus ook kolom "werkpost"!)
); //$data bevat nu dezelfde data als voorheen, maar nu met de kolom "werkpost" als key

?>
 
Frederick Dekempe

Frederick Dekempe

05/10/2022 19:06:14
Quote Anchor link
Mijn tabel is met deze kolommen opgemaakt:

ID - ploeg - werkpost - jaar - week - maandag - dinsdag - woensdag - donderdag - vrijdag

Met de FETCH_GROUP kan ik ploeg wel als array index krijgen, maar werkpost eronder krijgen lukt maar niet.

Finaal wil ik volgende kunnen bereiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $overzicht['A']['Brigadier']['maandag']


die me dan de naam toont die in die rij en in die kolom zit.
Gewijzigd op 05/10/2022 19:07:30 door Frederick Dekempe
 
Jan Koehoorn

Jan Koehoorn

05/10/2022 19:25:14
Quote Anchor link
Niet getest:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
$sql
= "
    SELECT
        ploeg,
        werkpost,
        maandag,
        dinsdag,
        woensdag,
        donderdag,
        vrijdag
    FROM weekoverzicht
    ORDER BY ploeg ASC, werkpost ASC
"
;
$stmt = $pdo->prepare($sql);

$stmt->execute();

$overzicht = [];
$rows      = $stmt->fetchAll(PDO::FETCH_ASSOC);
$ploeg     = null;
$werkpost  = null;

foreach ($rows as $row) {
    if ($row['ploeg'] != $ploeg) {
        $ploeg = $row['ploeg'];
    }

    if ($row['werkpost'] != $werkpost) {
        $werkpost = $row['werkpost'];
    }


    $overzicht[$ploeg][$werkpost]['maandag']   = $row['maandag'];
    $overzicht[$ploeg][$werkpost]['dinsdag']   = $row['dinsdag'];
    $overzicht[$ploeg][$werkpost]['woensdag']  = $row['woensdag'];
    $overzicht[$ploeg][$werkpost]['donderdag'] = $row['donderdag'];
    $overzicht[$ploeg][$werkpost]['vrijdag']   = $row['vrijdag'];
}

?>
Gewijzigd op 05/10/2022 19:28:30 door Jan Koehoorn
 
Frederick Dekempe

Frederick Dekempe

05/10/2022 19:50:48
Quote Anchor link
Bedankt voor je input!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
Array
(
    [A] => Array
        (
            [Brigadier] => Array
                (
                    [maandag] => W
                    [dinsdag] => W
                    [woensdag] => W
                    [donderdag] => W
                    [vrijdag] => W
                )

            [Marina] => Array
                (
                    [maandag] => C
                    [dinsdag] => C
                    [woensdag] => C
                    [donderdag] => C
                    [vrijdag] => -
                )

        )

    [B] => Array
        (
            [Brigadier] => Array
                (
                    [maandag] => V
                    [dinsdag] => V
                    [woensdag] => V
                    [donderdag] => V
                    [vrijdag] => V
                )

            [Marina] => Array
                (
                    [maandag] => G
                    [dinsdag] => V
                    [woensdag] => -
                    [donderdag] => -
                    [vrijdag] => -
                )

        )

)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.