abonnement Unibet Coolblue Bitvavo
pi_64120109
Ahh,

dan moet je docent array uit de functie gehaald worden (wat soieso verstandig is..)

Je zou zoiets kunnen doen:

1
2
3
4
5
6
7
8
9
10
11
<?php
$docent 
= array();

function 
VoegToe(&$docent$naam,$kamer,$telefoon,$vak) {
    
docent[] = array( "naam"=> $naam"kamernummer"=>$kamer,"telnr"=>$telefoon"vak" => $vak);
}

VoegToe($docent"Jij""1""020 1234567""php");
VoegToe($docent"Hij""2""020 1234568""php");
VoegToe($docent"Zij""3""020 1234569""php");
?>


Daarna gewoon je shizzle met $docent doen.

1
2
3
for($k = 0; $k < count($docent); $k++){
# do stuff
}


Dit moet je nooit doen, je gaat nu bij elke iteratie opnieuw een count uitvoeren, als je array een size heeft van 100, zal ie 100x count() uitvoeren. Beter doe je dit:

1
2
3
4
$max = count($docent);
for ($k = 0; $k < $max; $k++) {
    print_r($docent[$k]);
}


Maar aangezien je loopt over een array kan je ook een foreach gebruiken:

1
2
3
4
5
6
7
foreach($docent as $v) {
    print_r($v);
}
# kan ook zo gedaan worden:
foreach($docent as $k => $v) {
    print_r($v); # of print_r($docent[$k]);
}


[ Bericht 23% gewijzigd door slacker_nl op 18-12-2008 14:54:13 ]
In theory there is no difference between theory and practice. In practice there is.
pi_64120373
je bedoelt dat je dan ipv al die extra arrays docent als 1 array aanmaakt en er telkens een regel docent eronder maakt? zoals
docent 0 array (blablabla)
docent 1 array (blablabla)

maar als je $k++ toevoegt in regel 5 tussen die haakjes dan krijg ik een error.
Redacted
pi_64120437
Jep dat bedoel ik, en dat bedoel jij ook:

1
2
3
4
5
6
7
8
9
$docent = array(
    array( "naam"=>"Evelijn Visser", "kamernummer"=>"213","telnr"=>"", "vak"=>"Wiskunde"),
    array( "naam"=>"Gerda Acherop", "kamernummer"=>"214","telnr"=>"213", "vak"=>"Nederlands"),
    array( "naam"=>"Luc de Haan", "kamernummer"=>"215","telnr"=>"213", "vak"=>""),
    array( "naam"=>"Frederik Peppels", "kamernummer"=>"213","telnr"=>"", "vak"=>"Informatica"),
    array( "naam"=>"Hen Tartje", "kamernummer"=>"","telnr"=>"200", "vak"=>""),
    array( "naam"=>"Watje Stanat", "kamernummer"=>"212","telnr"=>"220", "vak"=>"Biologie"),
);
print_r($docent);


Kijk maar..
In theory there is no difference between theory and practice. In practice there is.
  donderdag 18 december 2008 @ 15:00:56 #104
84926 WyriHaximus
Release the hounds smithers!
pi_64120561
Zit ff met indexes te kutten maar wat is nou het verschil tussen 1 index per kolom en meerdere kolommen in 1 index?
phluphy for president!
pi_64121257
ik snap je niet helemaal meer slacker_nl

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
<?php
/*<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>php opdracht 2 week 2 by henk</title>
</head>
<body>
<table border="1">
<tr>
    <th colspan="4">Alle docenten</th>
</tr>
<tr>
    <td>Naam</td> <td>Kamernummer</td> <td>Telefoon</td> <td>Vak</td>
</tr>*/

$docent = array();
// hoe wil je dit herschrijven? zodat een toekomstige regel ook erbij kan komen?
// dacht dat het met k++ kon?
    
$docent[$k++]("naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde"),
    
$docent[$k++]("naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands"),
    
$docent[$k++]("naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>""),
    
$docent[$k++]("naam"=>"Frederik Peppels""kamernummer"=>"213","telnr"=>"""vak"=>"Informatica"),
    
$docent[$k++]("naam"=>"Hen Tartje""kamernummer"=>"","telnr"=>"200""vak"=>""),
    
$docent[$k++]("naam"=>"Watje Stanat""kamernummer"=>"212","telnr"=>"220""vak"=>"Biologie"),
);
function 
VoegToe(&$docent$naam,$kamer,$telefoon,$vak) {
    
$docent[$k++] = array( "naam"=> $naam"kamernummer"=>$kamer,"telnr"=>$telefoon"vak" => $vak);
}
// snap nog niet hoe het zit met het toevoegen met name dat hij een error bij   $docent[$k++]  geeft.
VoegToe($docent"Jij""1""020 1234567""php");
VoegToe($docent"Hij""2""020 1234568""php");
VoegToe($docent"Zij""3""020 1234569""php");
$max count($docent);
for (
$k 0$k $max$k++)
// dit was overgekomen dan hertelt hij niet elke keer weer.
{
    Echo 
'<tr><td>'.$docent[$k]['naam'].'</td><td>'.$docent[$k]['kamernummer'].'</td><td>'.$docent[$k]['telnr'].'</td><td>'.$docent[$k]['vak'].'</td></tr>';
}
/*
</table>
</body>
</html>*/
?>
Redacted
  donderdag 18 december 2008 @ 15:27:05 #106
75592 GlowMouse
l'état, c'est moi
pi_64121406
$k++ levert gewoon een getal op. Dit is toch geen valide php-code?
1
2
3
<?php
$docent
[1]("naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde"),
?>
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_64121497
quote:
Op donderdag 18 december 2008 15:27 schreef GlowMouse het volgende:
$k++ levert gewoon een getal op. Dit is toch geen valide php-code?
[ code verwijderd ]


je bedoelt dat de tel nr leeg is ? daar moet dan nog een if bij komen als geen waarde dan zet onbekend neer. maar zover was ik nog niet

ik heb het gevoel alsof ik toch iets vergeet

ik ga dit wel even doorlezen http://www.homeandlearn.co.uk/php/php17p4.html

[ Bericht 12% gewijzigd door cablegunmaster op 18-12-2008 15:39:02 ]
Redacted
  donderdag 18 december 2008 @ 15:37:18 #108
75592 GlowMouse
l'état, c'est moi
pi_64121796
Nee, ik bedoel dat jij een array in een array op wilt slaan. Dat doe je zo:
1
2
3
<?php
$docent
[1] = array("naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde");
?>

In PHP heb je gewoon nooit een $var[1](iets), nouja, of je moet hele gekke code schrijven
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_64122055
Ik zie dat je het niet snapt

Je haalt wat dingen door elkaar.

1
2
3
4
5
6
7
8
<?php
    $docent
[$k++]("naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde"),
    
$docent[$k++]("naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands"),
    
$docent[$k++]("naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>""),
    
$docent[$k++]("naam"=>"Frederik Peppels""kamernummer"=>"213","telnr"=>"""vak"=>"Informatica"),
    
$docent[$k++]("naam"=>"Hen Tartje""kamernummer"=>"","telnr"=>"200""vak"=>""),
    
$docent[$k++]("naam"=>"Watje Stanat""kamernummer"=>"212","telnr"=>"220""vak"=>"Biologie"),
?>


Dit kan je op 3 manieren herschrijven, methode 1 is door de functie die ik je gaf te gebruiken:
1
2
3
<?php
voegtoe
($docent"Gerda Acherop"214213"Nederlands");
?>


Of zoals je het eerst deed:

1
2
3
4
5
6
7
8
9
10
<?php
$docent 
= array(
    array( 
"naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde"),
    array( 
"naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands"),
    array( 
"naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>""),
    array( 
"naam"=>"Frederik Peppels""kamernummer"=>"213","telnr"=>"""vak"=>"Informatica"),
    array( 
"naam"=>"Hen Tartje""kamernummer"=>"","telnr"=>"200""vak"=>""),
    array( 
"naam"=>"Watje Stanat""kamernummer"=>"212","telnr"=>"220""vak"=>"Biologie"),
);
?>


Of manier 3 (en eigenlijk ben je dan manier 1 aan het uitvoeren, zonder de functie call):
[pcp]
$docent[] = array("naam"=>"Luc de Haan", "kamernummer"=>"215","telnr"=>"213", "vak"=>"");
[/php]

$array[] is hetzelfde als array_push alleen ietwat sneller (aangezien je geen functie call uitvoert), maar array_push kan meerdere elementen toevoegen aan een array:

1
2
3
4
5
6
7
8
9
<?php
array_push
($docent,  
    array(
"naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>""), 
    array( 
"naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands"))

# hetzelfde als:
$docent[] = array("naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>"");
$docent[] = array( "naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands");
?>


Maar let op!! $docent ga je niet initialiseren in de functie zelf, want dan "bestaat" $docent niet meer buiten je functie! zie http://nl.php.net/variables.scope

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
functie mijnfunctie
() {
    
$docent = array(1,2,3,4,5);
}

/* Hier bestaat docent niet meer 
Dat kan je oplossen door global te gebruiken, maar dat raad ik je af. */

functie mijnfunctie() {
    global 
$docent = array(1,2,3,4,5);
}

/* $docent bestaat nu wel buiten de functie scope*/
?>


Maar waar je in beide gevallen rekening mee moet houden is dat je $docent na elke call op mijnfunctie weer opnieuw een array wordt, gevuld van 1-5...

Ik pas nu een kleine truc toe waardoor het wel buiten de functie bestaat (http://nl.php.net/manual/en/language.references.php).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$docent 
= array();

function 
VoegToe(&$docent$naam,$kamer,$telefoon,$vak) {
    
docent[] = array( "naam"=> $naam"kamernummer"=>$kamer,"telnr"=>$telefoon"vak" => $vak);
}

VoegToe($docent"Jij""1""020 1234567""php");
VoegToe($docent"Hij""2""020 1234568""php");
VoegToe($docent"Zij""3""020 1234569""php");

# Zonder references:
function VoegToe($docent$naam,$kamer,$telefoon,$vak) {
    
docent[] = array( "naam"=> $naam"kamernummer"=>$kamer,"telnr"=>$telefoon"vak" => $vak);
    return 
$docent;
}
$docent VoegToe($docent"Jij""1""020 1234567""php");
$docent VoegToe($docent"Hij""2""020 1234568""php");
$docent VoegToe($docent"Zij""3""020 1234569""php");
?>


$k++ is niks meer dan een counter, en dat kan je overal voor gebruiken. Je kan ook wat toevoegen aan een array door het zo te doen:

1
2
3
4
$k = count($docent);
$docent[$k] = array(..);
$k++;
$docent[$k] = array(..);


Maar dan is de array[] of array_push() methode beter/makkelijker/minder omslachtig.

Ik zou heel even de documentatie omtrent arrays doorspitten om beter te begrijpen wat je ermee kan doen en hoe je ze kan manipuleren, http://nl.php.net/manual/en/book.array.php en http://us2.php.net/manual/en/language.types.array.php

Succes!

[ Bericht 50% gewijzigd door slacker_nl op 18-12-2008 15:54:12 ]
In theory there is no difference between theory and practice. In practice there is.
pi_64123347
ik denk dat ik het wel snap met toevoegen maar ik krijg het gevoel dat ik dan een for each moet gebruiken om alle waarde's weer te geven. en dat mijn for ($k = -1; $k < $max; $k++) niet meer de lading dekt om de nieuwe array's weer te geven
Redacted
pi_64125850
Die forloop zou gewoon moeten werken.. alleen moet je niet bij -1 moeten beginnen aangezien een sequentiele array bij zero based is (oftewel, de eerste value heeft 0 als index).

Je kan overigens beter foreach($docent as $leraar) { echo "Naam van leraar is " . $leraar['naam'] . "\n" } doen. Werkt makkelijker (IMO).

Met print_r() en/of vardump() kan je zien wat er in je variable zit.. Handig bij het debuggen/troubleshooten van problemen
In theory there is no difference between theory and practice. In practice there is.
pi_64128428
laat mij over dit nadenken volgens mij moet ik met al deze info wel iets werkends produceren.

snapte het eerst niet, maar begint steeds duidelijker te worden
Redacted
pi_64275245
ik wil de waarden in een array sorteren. De eerste waarde is de waarde waar op gesorteerd moet worden. De array ziet er als volgt uit:
1
2
3
4
5
6
7
8
9
<?php
$members 
= array();
$i 0;
while(
argumenten){
 
$members[$i]['rank'] = $rank;
 
$members[$i]['name'] = $name;
 
$i++;
}
?>


Hoe sorteer ik mijn array op rank?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  dinsdag 23 december 2008 @ 10:36:55 #114
187069 slacker_nl
Sicko pur sang
pi_64275900
http://nl.php.net/asort en/of soortgelijke functies.
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 23 december 2008 @ 17:22:20 #115
11091 SEMTEX
Mevr. Hoe-die-nie
pi_64290744
TVP
Kierkegaard: Life Can Only Be Understood Backwards, But It Must Be Lived Forwards
  dinsdag 23 december 2008 @ 17:30:42 #116
152303 hamkaastosti
ook bekend als hamkaastosti
pi_64291034
oi

Ik probeer een mvc framework in elkaar te klussen (jaja wiel opnieuw uitvinden e.d. ik weet het.)
nu heb ik de volgende sites op internet gevonden:
http://www.sitemasters.be(...)VC_pattern_uitgelegd
http://www.phpro.org/tutorials/Model-View-Controller-MVC.html

en toen ben ik wat gaan prutsen. Inmiddels werkt m'n router en m'n registry en heb ik 2 controllers voor m'n index en een gastenboek (bijvoorbeeld. als ik guestbook/view invul kom ik netjes in de functie view van de class guestbook. So far so good maar nu gaat het over de models en de views. Hoe zitten de bestanden van de models en de views in elkaar en hoe en waar verwerk ik de _POST variabelen. Heeft er iemand toevallig een site of een e-book met een duidelijker voorbeeld. Ik zie in die maffe voorbeelden door de bomen het bos niet meer.
Tom Jones zong ooit...
she's got style she's got grace, takes a cumshot to the face, she's a lady
laat een berichtje achter in mijn vriendjes en vriendinnetjesboek
grolsch is tof | Aj plat könt praoten, mo-j ut neet laoten
pi_64404667
ik krijg mijn switch niet werkend:


1
2
3
4
5
6
7
<?php
$ua 
//een string 
switch ($ua){
    case (
strstr($ua,'blaat')):
        
//doe wat
    
break;
?>


Hij doet het alleen als $ua exact 'blaat' is, niet als 'blaat' ergens halverwege staat... (dan voert'ie de default actie uit)
iemand een idee?
  zaterdag 27 december 2008 @ 17:36:20 #118
75592 GlowMouse
l'état, c'est moi
pi_64404793
quote:
Op zaterdag 27 december 2008 17:32 schreef mcDavid het volgende:
ik krijg mijn switch niet werkend:
[ code verwijderd ]

Hij doet het alleen als $ua exact 'blaat' is, niet als 'blaat' ergens halverwege staat... (dan voert'ie de default actie uit)
iemand een idee?
Is het hier niet zo dat de 'doe wat' bij veel cases sterk op elkaar lijkt, en je dus met een array met speciale user-agents beter af bent?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_64404899
euh ja dat is wel zo... hoe stel je je dat voor?
  zaterdag 27 december 2008 @ 17:42:43 #120
75592 GlowMouse
l'état, c'est moi
pi_64404970
1
2
3
4
5
6
7
8
9
<?php
$special_uas 
= array('blaat1''blaat2''etc');
foreach(
$special_uas as $special_ua) {
  if(
stripos($ua$special_ua) !== false) {
    
// w00t
    
break;
  }
}
?>
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 27 december 2008 @ 17:44:56 #121
46383 Tiemie
sowieso wel!
pi_64405054
quote:
Op zaterdag 27 december 2008 17:32 schreef mcDavid het volgende:
ik krijg mijn switch niet werkend:
[ code verwijderd ]

Hij doet het alleen als $ua exact 'blaat' is, niet als 'blaat' ergens halverwege staat... (dan voert'ie de default actie uit)
iemand een idee?

De functie strstr returned de string die die gevonden heeft. (de string die je zoekt ;) ) Deze is anders dan de string die je meegeeft aan de switch.

1
2
3
4
5
6
7
8
9
<?php
$ua 
'hoi blaat';//een string
switch ($ua){
    case (
strstr($ua,'blaat') == 'blaat'):
        
//doe wat
        
print 'hoi';
    break;
}
?>
pi_64405490
Ah beiden bedankt! ik zie nu wat ik fout deed, en denk tevens dat de methode van GM idd handiger is in dit geval!

-edit-
mochten julle geinteresseerd zijn in wat stats: http://duft.nl/avatars/browsers.php


[ Bericht 29% gewijzigd door mcDavid op 28-12-2008 01:53:48 ]
pi_64442510
het is me gelukt

met de for while methode, en je tel waarde op te slaan in een variabele

dankje slacker_nl

pixel respect
Redacted
  zondag 28 december 2008 @ 21:23:31 #124
12221 Tijn
Powered by MS Paint
pi_64443224
quote:
Op zaterdag 27 december 2008 18:00 schreef mcDavid het volgende:

mochten julle geinteresseerd zijn in wat stats: http://duft.nl/avatars/browsers.php
Leuk Misschien nog aardig om ook het OS te vermelden?
pi_64445429
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
echo '<tr><td>'.$docent[$k]['naam'].'</td><td>';
if(isset(
$docent[$k]['telnr'])) {
echo 
$docent[$k]['telnr'].'</td><td>'
} else {
echo 
$onbekend.'</td><td>';}
if(isset(
$docent[$k]['kamernummer'])) {
echo 
$docent[$k]['kamernummer'].'</td><td>'
} else {
echo 
$onbekend.'</td><td>' ;}
if(isset(
$docent[$k]['vak'])) {
echo 
$docent[$k]['vak'].'</td></tr>';
} else {
echo 
$onbekend.'</td></tr>'; }
}
?>



mijn bedoeling was dat als de waarde erin leeg was dat hij dan onbekend weergaf. maar hij geeft niks weer

variabele $onbekend = onbekend ;

maar dat lukt niet om een onbekende reden iemand een idee?
Redacted
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')