【发布时间】:2022-01-13 13:03:30
【问题描述】:
我从 mongodb 得到数据返回,当我搜索时,我发现我不能使用光标两次,所以我将所有数据放入数组中,现在我需要将数据拆分为唯一名称,即我得到的数据:
Array
(
[0] => Array
(
[name] => 208
[data] => 150
)
[1] => Array
(
[name] => 208
[data] => 130
)
[2] => Array
(
[name] => 204
[data] => 20
)
[3] => Array
(
[name] => 204
[data] => 30
)
[4] => Array
(
[name] => 208
[data] =>300
)
)
我需要完成的是获取唯一名称并为每个名称推送数据返回:
[0] => Array
(
[name] => 208
[data] => [150,130,300]
)
[1] => Array
(
[name] => 204
[data] => [20,30]
)
)
我可以获得唯一的名称,但不能将数据值推送到每个名称
我尝试了两个 foreach 循环但没有成功,感谢您的帮助
foreach ($cursor as $document) {
$name[] = $document['name'];
$data[] = $document['data'];
}
$uniName = array_unique($name);
foreach($uniName as $theName) {
foreach($result as $two) {
$arr1['name'] = $two['name'];
if($theName == $towo['name']) {
$arr1['data'][] = $tow['data'];
}
array_push($result1,$arr1);
}
}
【问题讨论】:
-
请向我们展示您的最佳尝试
-
我所做的是首先使用 array_unique 获取唯一名称,然后在唯一数组上进行 foreach 循环,然后在另一个 foreach 循环中再进行一个 foreach 循环,并尝试仅将数据存储到现有数组名称但没有成功,我在这里问之前玩了很多,所以我没有在这里展示的例子,因为我改变了很多:(
-
你有代码,给我们看看
-
类似的东西:foreach ($cursor as $document) { $name[] = $document['name']; $data[] = $document['data']; } $uniName = array_unique($name); foreach($uniName as $theName) { foreach($result as $two) { $arr1['name'] = $two['name']; if($theName == $towo['name']) { $arr1['data'][] = $tow['data']; } array_push($result1,$arr1); } }