我有一个数组
Array(
[0] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
[1] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
[2] => Array
(
[0] => 33
[user_id] => 33
[1] => 8
[frame_id] => 8
)
[3] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
[4] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
)
如您所见,键0与1、3和4相同。键2与它们全部不同。
在它们上运行array_unique函数时,唯一剩下的是
Array (
[0] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
)
有什么想法为什么array_unique无法按预期工作?
这是因为array_unique
使用字符串比较来比较项目。从文档:
注意:当且仅当(string)$ elem1 ===(string)$
elem2,两个元素才被视为相等。换句话说:当字符串表示相同时。将使用第一个元素。
数组的字符串表示形式就是单词Array
,无论其内容是什么。
您可以使用以下方法完成您想做的事情:
$arr = array(
array('user_id' => 33, 'frame_id' => 3),
array('user_id' => 33, 'frame_id' => 3),
array('user_id' => 33, 'frame_id' => 8)
);
$arr = array_intersect_key($arr, array_unique(array_map('serialize', $arr)));
//result:
array
0 =>
array
'user_id' => int 33
'user' => int 3
2 =>
array
'user_id' => int 33
'user' => int 8
运作方式如下:
每个数组项都已序列化。根据阵列的内容,这将是唯一的。
这样的结果一直运行到array_unique
,因此仅保留具有唯一签名的数组。
array_intersect_key
将从map / unique函数中获取唯一项的键(因为保留了源数组的键),并将其从原始源数组中拉出。
提示:给定一个整数数组,如果该数组在2旁边包含2或在4旁边包含4,则返回true,但不能同时包含这两个。 我只使用了数组,没有使用列表方法,但我想这样做是为了练习。这是我所拥有的,数组。asList()让我有些悲伤。 更新:部分问题是使用int而不是整数。新代码:
我正在这样使用spring boot和rest模板。 在上面的代码中,我得到了字符串形式的响应。我想将每个值映射到一个pojo类,并将其插入到我的数据库中。现在我还不知道如何将这些数组映射到pojo类中。
我正在处理一个freecodecamp挑战,我想知道为什么我的代码不工作,以及如何纠正它。 目标是“返回一个数组,该数组由每个提供的子数组中的最大数组成。” 我的尝试是使用减少作为映射函数映射输入数组: 当前输出为: 我应该如何修复我的代码?
我有一个名为的数组。它包含一系列对象,每个对象都包含一个名为的属性。我想在数组中的每个对象上重复该数组的内容。 如果我重复通过它在单个数组上运行良好。 但是,我想继续重复,就像这样: 等等。 我的(不正确)解决方案当前看起来如下: 在这种情况下,我假设$index将代表递增的整数,但它不起作用。有人能帮忙吗? 提前感谢...
问题内容: 我试图更好地掌握numpy数组,所以我有一个关于它们的示例问题: 假设我有一个名为a的numpy数组。我想对进行操作,使其中的所有小于0的值递增,其余的保持不变。例如,如果我有: 我想返回: 最紧凑的语法是什么? 谢谢! 问题答案:
我想在tarantool中使用数组位。我需要类似redis的操作:setbit、getbit和bitCount。狼蛛有可能吗?