Array
(
)
Array
(
)
Array
(
[0] => 14
)
Array
(
[0] => 14
)
Array
(
[0] => 14
)
Array
(
[0] => 14
)
Array
(
[0] => 14
)
Array
(
[0] => 14
[1] => 12
)
我想要这个数组
Array
(
[0] => 14
[1] => 12
)
这是我的代码:
$colorarray = array();
foreach($catIds as $catid){
$colorarray[] = $catid;
}
需要获取唯一的数组值
谢谢
答案 0 :(得分:3)
您可以将call_user_func_array
与array-merge结合使用来展宽数组,然后将array-unique用作:
$res = call_user_func_array('array_merge', $arr);
print_r(array_unique($res)); // will give 12 and 14
实时示例3v4l
或者按照@Progrock的建议:$output = array_unique(array_merge(...$data));
(我喜欢使用...
的语法)
答案 1 :(得分:2)
您始终可以执行以下操作:
$colorarray = array();
foreach($catIds as $catid){
if(!in_array($catid, $colorarray) {
$colorarray[] = $catid;
}
}
但这也具有n * n的复杂性,因此,如果您的数组太大,那么它可能不是您最优化的解决方案。
答案 2 :(得分:1)
您可以执行以下操作以生成唯一的数组。
array_unique($YOUR_ARRAY_VARIABLE, SORT_REGULAR);
这样,数组中只有唯一值,而不是重复值。
已更新
这也是一种实现方法
<?php
// define array
$a = array(1, 5, 2, 5, 1, 3, 2, 4, 5);
// print original array
echo "Original Array : \n";
print_r($a);
// remove duplicate values by using
// flipping keys and values
$a = array_flip($a);
// restore the array elements by again
// flipping keys and values.
$a = array_flip($a);
// re-order the array keys
$a= array_values($a);
// print updated array
echo "\nUpdated Array : \n ";
print_r($a);
?>
希望这对您有帮助
答案 3 :(得分:0)
PHP:从数组中删除重复的值
<?php
$fruits_list = array('Orange', 'Apple', ' Banana', 'Cherry', ' Banana');
$result = array_unique($fruits_list);
print_r($result);
?>
------您的案例--------
$result = array_unique($catIds);
print_r($result);
答案 4 :(得分:0)
您可以通过遍历原始对象的每个子数组来构造一个包含所有值的新数组,然后使用array_unique过滤结果:
<?php
$data =
[
[
0=>13
],
[
0=>13
],
[
0=>17,
1=>19
]
];
foreach($data as $array)
foreach($array as $v)
$all_values[] = $v;
var_export($all_values);
$unique = array_unique($all_values);
var_export($unique);
输出:
array (
0 => 13,
1 => 13,
2 => 17,
3 => 19,
)array (
0 => 13,
2 => 17,
3 => 19,
)
答案 5 :(得分:0)
我已更新您的代码,请检查
$colorarray = array();
foreach($catIds as $catid){
$colorarray[$catid] = $catid;
}
这将为您提供100%的唯一值。