I am wondering how can i access following array using nested foreach loop ?
Array ( [0] =>
Array ( [0] => stdClass Object ( [roleID] => 3 [permID] => 2 )
[1] => stdClass Object ( [roleID] => 3 [permID] => 3 )
[2] => stdClass Object ( [roleID] => 2 [permID] => 4 )
[3] => stdClass Object ( [roleID] => 2 [permID] => 5 ) )
here is my code:
foreach($allPermissions as $allPermission) :
foreach($rolePermissions as $rolePermission) :
if($allPermission->ID==$rolePermission[0]->permID) { ?>
<div class="perms">
<input type="checkbox" name="permissions[]" id="<?php echo $allPermission->ID; ?>" value="<?php print $allPermission->ID; ?>" checked><?php print $allPermission->permName; ?></option></div>
<?php }
endforeach;
endforeach; ?>
This way i am able to get result relate to index 0 but unable to get result if array index goes above 0.
Answer
I figure out with following code:
foreach($rolePermissions as $key=>$val) :
foreach($val as $subkey=>$subval)
{
if($allPermission->ID==$subval->permID) {
?>
<div class="perms">
<input type="checkbox" name="permissions[]" id="<?php echo $allPermission->ID; ?>" value="<?php print $allPermission->ID; ?>" checked><?php print $allPermission->permName; ?></option></div>
<?php } }
It should be like this if I understood this correctly
// Iterating all permissions
foreach($allPermissions as $allPermission){
// Iterating the roles of a specific permission
foreach($allPremisson as $rolePermission) {
}
}
try this:
foreach($allPermissions as $allPermission) :
foreach($rolePermissions as $key=>$rolePermission) :
if($allPermission->ID==$rolePermission[$key]->permID) { ?>
<div class="perms">
<input type="checkbox" name="permissions[]" id="<?php echo $allPermission->ID; ?>" value="<?php print $allPermission->ID; ?>" checked><?php print $allPermission->permName; ?></option></div>
<?php }
endforeach;
endforeach; ?>
in normal php you can do this:
<?php
$array=array ( 0 =>
array ( 0 => array( roleID => 3, permID => 2 ),
1 => array ( roleID => 3 ,permID => 3 ),
2 => array ( roleID => 2 ,permID => 4 ),
3 => array ( roleID => 2 ,permID=> 5 ) ) );
foreach($array as $allPermission)
foreach($array as $key=>$rolePermission)
if($allPermission->roleID==$rolePermission[$key]->permID) { ?>
<div class="perms">
<input type="checkbox" name="permissions[]" id="<?php echo $allPermission->ID; ?>" value="<?php print $allPermission->ID; ?>" checked><?php print $allPermission->permName; ?></option></div>
<?php }
?>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.