为了账号安全,请及时绑定邮箱和手机立即绑定

需要在数组中获取唯一值

需要在数组中获取唯一值

PHP
红颜莎娜 2021-06-19 15:08:59
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;}需要获取唯一的数组值
查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

你总是可以做这样的事情:


$colorarray = array();

foreach($catIds as $catid){

    if(!in_array($catid, $colorarray) {

       $colorarray[] = $catid;

    }

}

但这也有 n*n 复杂性,所以如果你的数组太大,它可能不是最适合你的解决方案。


查看完整回答
反对 回复 2021-06-25
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您可以使用call_user_func_array阵列合并为扁平化的数组,然后使用数组唯一为:

$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));我喜欢使用 的语法...


查看完整回答
反对 回复 2021-06-25
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您可以执行以下操作来生成唯一的数组。


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); 

?>


希望这会帮助你


查看完整回答
反对 回复 2021-06-25
  • 3 回答
  • 0 关注
  • 181 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信