我有这个数组:
$array[] = [
'a' => $a,
'b' => $b,
];
该数组包含10个条目,$ a可以在那里多次使用相同的值,我只需要其中一个条目用于数据库插入。
我无法让array_unique工作,因为它抛出
array to string conversion
尝试使用时出现错误
$result = array_unique($array);
我现在做了一个foreach循环,感觉这是错误的:
$z = [];
foreach ($array as $x) {
if (@!in_array($x['a'],$z)) {
$z[] = $x['a'];
}
}
我之后使用$ z作为插入。
有人能指出我如何区分数组值的正确方向吗?
答案 0 :(得分:3)
这应该适合你:
($result = array_unique($array);
这没用,因为你有一个多维数组!)
<?php
//Example data
$array[] = [
'a' => 1,
'b' => 1,
'c' => 1,
'd' => 2,
'e' => 2,
];
$array = array_map("array_unique", $array);
print_r($array);
?>
输出:
Array ( [0] => Array ( [a] => 1 [d] => 2 ) )
答案 1 :(得分:1)
根据您的二维数组,您需要:
$array = array_map('array_unique', $array);
或者,如果您不需要二维数组,只需使用:
$array = [
'a' => $a,
'b' => $b,
];
然后:$array = array_unique($array);
答案 2 :(得分:0)
如果您可以自己管理密钥,那么未提及的一件事就是阵列是唯一的。关联数组只能拥有一次密钥。所以我喜欢使用主键或键的唯一标识符。
您不能拥有具有相同键的数组。
array(
'a' => $a
'a' => $b
)
因为密钥a
已经是唯一标识符。如果你跟着。