waarde uit array in string zetten
Maar hoe zet ik ook alweer een waarde uit een array in een string.
Ik heb nu het volgende
array:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Array
(
[233] => stdClass Object
(
[id] => 233
[idnumber] => manager P & O-1
[name] => manager P & O-1
[description] => MA-PO
)
)
(
[233] => stdClass Object
(
[id] => 233
[idnumber] => manager P & O-1
[name] => manager P & O-1
[description] => MA-PO
)
)
code:
$var = $array[233]['id'];
Die $array[233] is steeds een andere waarde aan de hand van $userid
Bedoel je $array[$userid] dan?
Wat probeer je precies te doen?
Dus 234 geeft andere resultaten.
owja maar wel afwijkend aan de hand van het $userid
Gewijzigd op 19/06/2015 16:32:59 door - SanThe -
Die array kun je doorlopen met een foreach. Een object (class) heeft waarschijnlijk functies als getId() getName() etc
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
function lms_cohorts_get_roles( $userid=false )
{
global $DB, $USER;
if( !isset( $userid ))
$userid = $USER->id;
return $DB->get_records_sql( 'SELECT c.id, c.idnumber, c.name, c.description FROM {cohort} c JOIN {cohort_members} my_cohort_members ON my_cohort_members.cohortid=c.id AND my_cohort_members.userid=:userid JOIN {lms_cohort_hierarchy} ch ON ch.cohortid=c.id WHERE 0<FIND_IN_SET(:root_role,hierarchy) ORDER BY c.name', array('userid'=>$userid, 'root_role'=>get_config('*******','*******')));
}
{
global $DB, $USER;
if( !isset( $userid ))
$userid = $USER->id;
return $DB->get_records_sql( 'SELECT c.id, c.idnumber, c.name, c.description FROM {cohort} c JOIN {cohort_members} my_cohort_members ON my_cohort_members.cohortid=c.id AND my_cohort_members.userid=:userid JOIN {lms_cohort_hierarchy} ch ON ch.cohortid=c.id WHERE 0<FIND_IN_SET(:root_role,hierarchy) ORDER BY c.name', array('userid'=>$userid, 'root_role'=>get_config('*******','*******')));
}
Toevoeging op 19/06/2015 17:41:01:
Hall Frank,
Ik ga met die van jou even testen of ik er dan kom.
Ik heb nu het volgende:
Wat is het nut van de foreach() als je alleen de laatste gebruikt.
Wat stel jij dan voor SanThe ?
Doe eens een print_r($roles) tussen regel 2 en 3,
Code (php)
1
Array ( [164] => stdClass Object ( [id] => 164 [idnumber] => STAGIA [name] => stagiaire alg. en adm. [description] => STAGIA-stagiaire alg. en adm. ) )
Toevoeging op 19/06/2015 18:07:33:
Ik ha nu $userid = 533;
In de if() heb je geen vergelijking maar een toekenning.
Is dat de bedoeling?
Toevoeging op 19/06/2015 21:08:09:
Hoe kan ik dit nu dan zonder foreach ook alweer doen want ik zie het echt even niet.
met:
Dat is wat SanThe bedoelde.
Toevoeging op 19/06/2015 21:58:18:
- SanThe - op 19/06/2015 18:11:17:
Je ziet dat $roles maar 1 record heeft, dus een foreach() is niet nodig.
Nee dat is niet juist. $roles is een array van objecten. Alleen zit er nu maar één element in de array. Echter kunnen dat er voor het zelfde geld meerder zijn natuurlijk.
Toevoeging op 19/06/2015 22:00:10:
Misschien is het toch handig als Rik even in normaal nederlands uitlegt wat hij uiteindelijk wil bereiken.
(wil je alle rollen van de gebruiker weergeven?)
Gewijzigd op 19/06/2015 22:02:22 door Frank Nietbelangrijk
Mijn gevoel zegt dat het niet hele lastig is en met de foreach werkt het al maar omdat het maar 1 record is misschien anders oplossen dit ?
Anyway, er van uitgaande dat je altijd maar één object in die array hebt zitten en dus altijd het eerste (en enigste) object wilt hebben dat in de array zit, kun je het zo oplossen:
Frank bedankt dit werkt zoals ik het wil hebben.