Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数组中获取不重复的数字_Php - Fatal编程技术网

Php 从数组中获取不重复的数字

Php 从数组中获取不重复的数字,php,Php,我在解决一个问题上遇到了困难 我有一个数组,它包含从0到555的数字 array(0, 1, 2, 3, 4... 555) 我需要一个函数,它只返回那些不包含相同数字的数字 因此,这些数字不会得到回报 11-因为“1”正在重复 255-因为255正在重复。。所以 我应该如何通过php解决这个问题 谢谢如果你把数字看作一个字符串,这其实很简单。可以使用的函数是,它统计字符串中字符的出现次数: $array = array(0, 1, 2, 3, 4, 11, 255, 555); $resu

我在解决一个问题上遇到了困难

我有一个数组,它包含从0到555的数字

array(0, 1, 2, 3, 4... 555)
我需要一个函数,它只返回那些不包含相同数字的数字

因此,这些数字不会得到回报

11-因为“1”正在重复 255-因为255正在重复。。所以

我应该如何通过php解决这个问题


谢谢

如果你把数字看作一个字符串,这其实很简单。可以使用的函数是,它统计字符串中字符的出现次数:

$array = array(0, 1, 2, 3, 4, 11, 255, 555);

$result = array_filter($array, function ($number) {

    $containsUniqueNumbers = true;

    foreach (count_chars(strval($number), 1) as $count) {

        // If any of the characters in the string occurs more than once:
        if ($count > 1) {
             $containsUniqueNumbers = false;
             break;
        }
    }

    return $containsUniqueNumbers;
});

变量
$result
现在将包含
数组(0,1,2,3,4)

尝试一下,我所做的是,对于每个值,将值转换为数组,然后对于特定数组,使用
数组_unique()
函数删除重复项,在这一步中,如果存在重复条目,那么输出的大小将小于原始字符串,因此我们可以使用sizeof函数检查大小,如果它们不相等,那么我们可以从数组中删除该值

<?php 
$sample = array(0, 1, 2, 3, 4... 555);

foreach ($sample as $key => $value) {
    if ($value > 9){
        //Do this for value more than 2 digits
        $original = str_split($value); 
        $check = array_unique($original); 
        if(sizeof($check)!= $original){
            //Remove the value
            unset($sample[$key]);

        }
    }
}

print_r($sample);

?>


带有代码。我没有尝试,因为我不知道如何解决。重复的数字必须是连续的,还是应该删除
101
$result=array\u filter($myArray,function($value){$c=str\u split($value);返回计数($c)==count(array\u unique($c));})编写一个正则表达式,匹配没有重复数字的数字(进行谷歌搜索,你会发现这个)。然后使用
array\u filter
匹配这些数字。