Data uit een array / foreach splitsen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard Duinmayer

Richard Duinmayer

08/02/2009 19:28:00
Quote Anchor link
In onderstaande stukje code wordt de datum geprint als 07-1-09-02-2009 (Weeknummer, dagnummer, dag, maand, jaar)

Hoe kan ik weeknummer en dagnummer opsplitsen? Eventueel in een variable zodat ik deze voor verdere berekeningen kan gebruiken


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
<?php
// loopen door alle dagen
for ($i = $vandate; $i <= $totdate; $i+= 86400)
  {
  
  if(date("w",$i) != 0 AND date("w",$i) != 6) // Weekenden uit de dagen filteren
    {
    /* $werkdagen++; */
    $werkdagen[] = date('W-w-d-m-Y', $i);
    }
  }

  
foreach($werkdagen as $dag)
{

    echo $dag . '<br/>';    
}

?>
 
PHP hulp

PHP hulp

08/05/2024 19:29:23
 
Jesper Diovo

Jesper Diovo

08/02/2009 19:29:00
Quote Anchor link
explode() en list().
 
Richard Duinmayer

Richard Duinmayer

08/02/2009 19:34:00
Quote Anchor link
Heb het nu als volgt, maar krijg dan de foutmeldingen:
Notice: Array to string conversion in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 114
Array
Notice: Undefined offset: 1 in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 116

Notice: Undefined offset: 2 in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 117

Notice: Undefined offset: 3 in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 118

Notice: Undefined offset: 4 in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 119

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
<?php

// loopen door alle dagen
for ($i = $vandate; $i <= $totdate; $i+= 86400)
  {
  
  if(date("w",$i) != 0 AND date("w",$i) != 6) // Weekenden uit de dagen filteren
    {
    /* $werkdagen++; */
    $werkdagen[] = date('W-w-d-m-Y', $i);
    }
  }

  
foreach($werkdagen as $dag)
{

    echo $dag . '<br/>';
    $werkdagen = explode("-", $werkdagen);
    echo $werkdagen[0];
    echo $werkdagen[1];
    echo $werkdagen[2];
    echo $werkdagen[3];
    echo $werkdagen[4];    
}


?>
 

08/02/2009 19:37:00
Quote Anchor link
richard schreef op 08.02.2009 19:28:
In onderstaande stukje code wordt de datum geprint als 07-1-09-02-2009 (Weeknummer, dagnummer, dag, maand, jaar)

Hoe kan ik weeknummer en dagnummer opsplitsen? Eventueel in een variable zodat ik deze voor verdere berekeningen kan gebruiken


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
<?php
// loopen door alle dagen
for ($i = $vandate; $i <= $totdate; $i+= 86400)
  {
  
  if(date("w",$i) != 0 AND date("w",$i) != 6) // Weekenden uit de dagen filteren
    {
    /* $werkdagen++; */
    $werkdagen[] = date('W-w-d-m-Y', $i);
    }
  }

  
foreach($werkdagen as $dag)
{

    echo $dag . '<br/>';    
}

?>

Kan je dat $werkdagen[] = date('W-w-d-m-Y', $i); gewoon niet ombouwen dat je een aparte array maakt, bijvoorbeeld een multidimensionele?

richard schreef op 08.02.2009 19:34:
Heb het nu als volgt, maar krijg dan de foutmeldingen:
Notice: Array to string conversion in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 114
Array
Notice: Undefined offset: 1 in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 116

Notice: Undefined offset: 2 in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 117

Notice: Undefined offset: 3 in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 118

Notice: Undefined offset: 4 in C:\wampserver\www\1-Ontwikkeling\afwasrooster-generator-0.1\roosters.php on line 119

Doe es een var_dump van $werkdagen. En is het slim om je oorspronkelijke array te overschrijven?
Gewijzigd op 01/01/1970 01:00:00 door
 
Richard Duinmayer

Richard Duinmayer

08/02/2009 19:43:00
Quote Anchor link
De var_dump:
array(9) { [0]=> string(15) "07-1-09-02-2009" [1]=> string(15) "07-2-10-02-2009" [2]=> string(15) "07-3-11-02-2009" [3]=> string(15) "07-4-12-02-2009" [4]=> string(15) "07-5-13-02-2009" [5]=> string(15) "08-1-16-02-2009" [6]=> string(15) "08-2-17-02-2009" [7]=> string(15) "08-3-18-02-2009" [8]=> string(15) "08-4-19-02-2009" }
 
Jesper Diovo

Jesper Diovo

08/02/2009 19:45:00
Quote Anchor link
Door van $werkdagen explode('-', $werkdagen); te maken overschrijf je de array met een nieuwe array, nl. die met alle gegevens van de date functie. Ik gaf je niet voor niks ook een link over list().

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
foreach($werkdagen as $werkdag) {
  list($weeknr, $dagnr, $dag, $maand, $jaar) = explode("-", $werkdag);

  echo $weeknr.' en '.$dagnr.' en '.$dag.' en '.$maand.' en '.$jaar;
}

?>
 

08/02/2009 19:46:00
Quote Anchor link
Jezpur schreef op 08.02.2009 19:45:
Door van $werkdagen explode('-', $werkdagen); te maken overschrijf je de array met een nieuwe array, nl. die met alle gegevens van de date functie. Ik gaf je niet voor niks ook een link over list().

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
foreach($werkdagen as $werkdag) {
  list($weeknr, $dagnr, $dag, $maand, $jaar) = explode("-", $werkdag);

  echo $weeknr.' en '.$dagnr.' en '.$dag.' en '.$maand.' en '.$jaar;
}

?>

Hij moet ook $dag exploden ;-), dat doet ie ook niet.
 
Richard Duinmayer

Richard Duinmayer

08/02/2009 19:49:00
Quote Anchor link
Nee dat deed ik niet :|

Die list functie is wel handig :)

Mijn dank is groot heren
 

08/02/2009 19:54:00
Quote Anchor link
richard schreef op 08.02.2009 19:49:
Nee dat deed ik niet :|

Welwaar:
richard schreef op 08.02.2009 19:34:
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
<?php

// loopen door alle dagen
for ($i = $vandate; $i <= $totdate; $i+= 86400)
  {
  
  if(date("w",$i) != 0 AND date("w",$i) != 6) // Weekenden uit de dagen filteren
    {
    /* $werkdagen++; */
    $werkdagen[] = date('W-w-d-m-Y', $i);
    }
  }

  
foreach($werkdagen as $dag)
{

    echo $dag . '<br/>';
    $werkdagen = explode("-", $werkdagen); # <- Daar doe je het toch?!?!?
    echo $werkdagen[0];
    echo $werkdagen[1];
    echo $werkdagen[2];
    echo $werkdagen[3];
    echo $werkdagen[4];    
}


?>


Ik meen dat er ook tegen je gezegd is dat je Blanche's z'n php handleiding moest lezen. Hoe staat het daar mee?

En wat denk je van dit:
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
<?php
// loopen door alle dagen
for ($i = $vandate; $i <= $totdate; $i+= 86400)
  {
  
  if(date("w",$i) != 0 AND date("w",$i) != 6) // Weekenden uit de dagen filteren
    {
    /* $werkdagen++; */
    // 07-1-09-02-2009 (Weeknummer, dagnummer, dag, maand, jaar) date('W-w-d-m-Y', $i);

    $werkdagen[] = array("Weeknummer" => date('w', $i),
                         "dagnummer" => date('w', $i),
                         "dag" => date('d', $i),
                         "maand" => date('m', $i),
                         "jaar" => date('Y', $i));
    }
  }

  
foreach($werkdagen as $dag)
{

    // weeknummer en dagnummer
    echo $dag["Weeknummer"] . " en " . $dag["dagnummer"] . '<br/>';    
}

?>

zoals ik in eerste instansie voorstelde. Natuurlijk hoeft die array niet zo vol te zitten met jaar e.d. als je dat niet wilt. Maar goed, het is maar een voorbeeld.
Gewijzigd op 01/01/1970 01:00:00 door
 
Richard Duinmayer

Richard Duinmayer

08/02/2009 20:13:00
Quote Anchor link
Ik bedoelde dat het klopte dat ik dat niet had gedaan...


Die multidimensionele array is misschien wel handiger want die is dan eenvoudig uit te breiden. Thnx

Die handleiding van Blanche ben ik nog niet op gewezen geloof ik, ik heb hem gebookmarkt en zal hem na dit projectje lezen.
 

08/02/2009 20:15:00
Quote Anchor link
richard schreef op 08.02.2009 20:13:
Ik bedoelde dat het klopte dat ik dat niet had gedaan...

Ah, altijd wel lastig hoe je dat moet interpeteren :-).

richard schreef op 08.02.2009 20:13:
Die multidimensionele array is misschien wel handiger want die is dan eenvoudig uit te breiden. Thnx

Geen probleem, gewoon creatief denken, gaat jou vast ook wel lukken :-).

richard schreef op 08.02.2009 20:13:
Die handleiding van Blanche ben ik nog niet op gewezen geloof ik, ik heb hem gebookmarkt en zal hem na dit projectje lezen.

Waarom niet nu?
Gewijzigd op 01/01/1970 01:00:00 door
 
Richard Duinmayer

Richard Duinmayer

08/02/2009 20:29:00
Quote Anchor link
Hoe meer ik weet welke functies er zijn, hoe makkelijker het creatievere denken zal gaan. Nu ik iets meer inzicht heb in PHP en MYSQL ga ik me meer verdiepen in de documentaties zodat ik het iets beter kan begrijpen.

"Waarom niet nu?"
Nu ben ik hiermee bezig en wil dit graag af hebben, loop hier al veel te lang mee te spelen / te kloten ;)
 
Jesper Diovo

Jesper Diovo

08/02/2009 20:38:00
Quote Anchor link
Misschien is het dan juist een idee om eerst de basis helemaal onder controle te krijgen d.m.v. die handleiding en dan zo in een paar uur je dingetjes af te maken ;-).
 
Richard Duinmayer

Richard Duinmayer

08/02/2009 20:52:00
Quote Anchor link
De basis van php wist ik wel / heb ik een keer gelezen, maar pas als je het zelf uitvoert leer je het echt en kan je het beter in beelden.

Zo iets als weeknummer, date() en die arrays daar kan je volgens mij zoveel overlezen als je wilt maar als je geen contrete voorbeelden hebt dan denk je er niet aan om die te gebruiken.

Ik iig nog niet... maar dat komt wel
 
- SanThe -

- SanThe -

08/02/2009 21:46:00
Quote Anchor link
richard schreef op 08.02.2009 20:29:
Hoe meer ik weet welke functies er zijn, hoe makkelijker het creatievere denken zal gaan.

Doe je best. Hier staan ze allemaal. ;-)
 



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.