Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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_Arrays - Fatal编程技术网

Php 获取数组中的唯一值并在不使用数组函数的情况下计数

Php 获取数组中的唯一值并在不使用数组函数的情况下计数,php,arrays,Php,Arrays,我有一个数组: $arrData = array(3,5,5,8,7,6,3,1,2,8,9); 在不使用任何数组defualt函数的情况下,我希望获得数组的计数 条件: $arrData = array(3,5,5,8,7,6,3,1,2,8,9); 重复的数组值必须视为1个值 请提供您的逻辑,可以帮助找到我的答案没有数组函数 提前感谢…如果您只想获得阵列计数而不需要重复项,可以通过以下方式进行: <?php $arrData = array(3, 5, 5, 8, 7, 6, 3

我有一个数组:

$arrData = array(3,5,5,8,7,6,3,1,2,8,9);
在不使用任何数组defualt函数的情况下,我希望获得数组的计数

条件:

$arrData = array(3,5,5,8,7,6,3,1,2,8,9);
重复的数组值必须视为1个值


请提供您的逻辑,可以帮助找到我的答案没有数组函数


提前感谢…

如果您只想获得阵列计数而不需要重复项,可以通过以下方式进行:

<?php

$arrData = array(3, 5, 5, 8, 7, 6, 3, 1, 2, 8, 9);
$out = array();

foreach ($arrData as $item) {
    if (!in_array($item, $out)) {
        $out[] = $item;
    }
}


echo count ($out);
<?php

$arrData = array(3,5,5,8,7,6,3,1,2,8,9);

$out = array();

foreach ($arrData as $item) {
    if (isset($out[$item])) {
        ++$out[$item];
    }
    else {
        $out[$item] = 1;
    }
}

foreach ($out as $item => $count) {
    echo $item.' '.$count."<br />";
}

echo count($out);
使用此php函数

$arrData = array(3,5,5,8,7,6,3,1,2,8,9);
array_count_values($arrData );
 print_r($arrData );
dublicat数组值的widtout函数默认值

$arrData = array(3, 5, 5, 8, 8, 7, 6, 3, 1, 2, 8, 9);

    $i=0;
   $valueArray='';
$newDublicatValue=array();
foreach($arrData as $key=>$value){

    if ($arrData[$key]==$valueArray){
        $newDublicatValue[]=$arrData[$key];
    }
    $valueArray=$arrData[$key];

}
print_r($newDublicatValue);
$arrData = array(3, 5, 5, 8, 8, 7, 6, 3, 1, 2, 8, 9);

    $i=0;
   $valueArray='';
$newDublicatValue=array();
foreach($arrData as $key=>$value){

    if ($arrData[$key]==$valueArray){
       unset($arrData[$i]);
    }
    $valueArray=$arrData[$i];
    $i++;

}
print_r($arrData);

或者使用此函数删除数组中的双精度值

$result = array_unique($arrData );
print_r($result);
dublicat数组值的widtout函数默认值

$arrData = array(3, 5, 5, 8, 8, 7, 6, 3, 1, 2, 8, 9);

    $i=0;
   $valueArray='';
$newDublicatValue=array();
foreach($arrData as $key=>$value){

    if ($arrData[$key]==$valueArray){
        $newDublicatValue[]=$arrData[$key];
    }
    $valueArray=$arrData[$key];

}
print_r($newDublicatValue);
$arrData = array(3, 5, 5, 8, 8, 7, 6, 3, 1, 2, 8, 9);

    $i=0;
   $valueArray='';
$newDublicatValue=array();
foreach($arrData as $key=>$value){

    if ($arrData[$key]==$valueArray){
       unset($arrData[$i]);
    }
    $valueArray=$arrData[$i];
    $i++;

}
print_r($arrData);

使用类似以下内容:

<?php
    $arrData    = array(3,5,5,8,7,6,3,1,2,8,9);
    $tmpArray   = array();

    $i = 0;
    foreach($arrData as $k => $v)
    {
        if(!in_array($v, $tmpArray))
        {
            $tmpArray[$k] = $v; 
            $i++;
        }
    }

    echo "Unique array size is: ".$i;
?>



您尝试过什么?你的结果是什么?什么事困扰着你?把作业张贴在StackOverflow上,希望有人能帮你完成,这是考虑不周的,你至少得尝试一下。我们不做作业。实际上这是面试中提出的问题。。我甚至不知道。。我试图搜索,但每个人都在使用这些函数。。所以我在这里添加了这个问题…“请提供您的逻辑,可以帮助我在没有数组函数的情况下找到答案…”哥们,我需要在最后的总计数。。副本将被视为1个值。。所以我想要的结果是:8谢谢这真的很有效。。但如果我们不必使用in_数组函数?我们还能得到同样的结果吗@S.PolsYeah当然,你会得到这样的想法。(见上文)