我有一个由SQL查询返回的数据组成的数组:
$_SESSION['licensed_users'] = $db->get_results("SELECT np.id FROM `new_people` np LEFT JOIN institute.users_roles ur ON np.institute_uid = ur.uid WHERE np.company_id=$company_id AND ur.rid=8 AND np.active = 1");
这将返回一个如下所示的数组:
Array (
[0] => stdClass Object ( [id] => 25590 )
[1] => stdClass Object ( [id] => 40657 )
[2] => stdClass Object ( [id] => 60685 )
[3] => stdClass Object ( [id] => 61900 )
[4] => stdClass Object ( [id] => 65224 )
[5] => stdClass Object ( [id] => 65369 )
[6] => stdClass Object ( [id] => 79171 )
[7] => stdClass Object ( [id] => 80763 )
[8] => stdClass Object ( [id] => 80762 )
[9] => stdClass Object ( [id] => 80761 )
)
在代码的另一部分中,我遍历值以查看当前用户是否是该数组的一部分:
foreach($_SESSION'licensed_users'] as $key=>$value) {
if($value->id == $people_id) {
$is_licensed = true;
}
}
$is_licensed
用于确定要向用户显示的表单字段集。当用户提交表单时,如果某个字段组设置为某个值,我需要将用户($ people_id)添加到$_SESSION['licensed_users']
数组,如果$is_licensed
为false,或者删除如果$is_licensed
为真,则来自数组。确定采取哪种行动的代码没有问题;我只是不能为我的生活记住/弄清楚如何添加到一个对象数组。我见过this和this,但我已经知道ID是否在数组中;我只需要能够添加或删除它。
(是的,我们使用会话变量是有原因的 - 我们需要能够在网站的页面之间传递值。它可以是那个或cookie。)
我已经尝试了$_SESSION['licensed_users'][] = array("id"=>$people_id);
但似乎没有做任何事情。
答案 0 :(得分:2)
删除$ lu [6]:
unset($lu[6]);
添加元素:
$lu[] = $current_user;