我有以下代码生成角色列表:
array_unique
$ curr_org ['role']中包含的数据中包含重复数据。
我一直在搞{
"_id" : ObjectId("571626ac768d884c268b456b"),
"name" : "John Doe",
"email" : "jack@daniels.com",
"manager" : "Jack Daniels",
"role" : "Boss Man",
"password" : "$2y$10$Bk8kVZaa0K.AJ7GqWT65LuTkWYVtNw8jK6Am5izcnvHAVBIxj5VHC",
"organization" : "MyOrg"
}
而无法找到'role'的值(获取数组或NULL),或者我得到了第一个和最后一个值(id和组织)。< / p>
我的示例文档是:
array_unique
任何人都可以告诉我应该在循环中添加Boss Man
Boss
Expeditor
Shift Manager
Ditch Digger
Boss
CEO
CEO
Expeditor
的位置,以便我只生成一个独特角色列表吗?
最诚挚的问候, 丹尼斯霍尔
更新: 然而,使用distinct似乎有效,它只回显每个角色的第一个字符如下:
使用查找:
B
B
E
S
D
C
使用Distinct:
$cursor = $collection->distinct('role', array("organization" => $curr_org['organization'], "role" => array('$exists' => true)));
foreach($cursor as $curr_org){
echo '<ul>';
echo '<li>';
echo $curr_org;
echo '</li>';
echo '</ul>';
}
解决: 解决方案是在cursor命令中使用“distinct”。同样在游标命令和循环中定义键会导致结果截断为单个字母。在循环中,解决方法是从echo $ curr_org ['role']中删除['role'];线。工作代码如下:
<div>
<img ng-src="{{img(color)}}" ng-if="color">
</div>
答案 0 :(得分:0)
如果你关心的是角色,你可以使用MongoCollection::distinct
$roles = $collection->distinct('role', array("organization" => $curr_org['organization']);