如何在对象数组中添加/删除条目?

时间:2011-11-21 18:58:15

标签: php arrays

我有一个由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为真,则来自数组。确定采取哪种行动的代码没有问题;我只是不能为我的生活记住/弄清楚如何添加到一个对象数组。我见过thisthis,但我已经知道ID是否在数组中;我只需要能够添加或删除它。

(是的,我们使用会话变量是有原因的 - 我们需要能够在网站的页面之间传递值。它可以是那个或cookie。)

我已经尝试了$_SESSION['licensed_users'][] = array("id"=>$people_id);但似乎没有做任何事情。

1 个答案:

答案 0 :(得分:2)

删除$ lu [6]:

unset($lu[6]);

添加元素:

$lu[] = $current_user;