Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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,我有一个数组,我想得到所有不同的值 我的代码运行良好,直到有一点 $array_for_19_2=[ ["A 1","A 1","A 1","A 2","A 3","A 2","A 1","A 3","A 2","A 1","A 3","A 3","A 2","A 1","A 2"], ["A a","A a","A c","A a","A c","A c","A c","A a","A a","A c","A c","A a","A a","A a","A c"], ["A X","A Y",

我有一个数组,我想得到所有不同的值

我的代码运行良好,直到有一点

$array_for_19_2=[
["A 1","A 1","A 1","A 2","A 3","A 2","A 1","A 3","A 2","A 1","A 3","A 3","A 2","A 1","A 2"],
["A a","A a","A c","A a","A c","A c","A c","A a","A a","A c","A c","A a","A a","A a","A c"],
["A X","A Y","A Z","A Z","A Z","A Y","A X","A X","A X","A X","A Z","A Z","A X","A Z","A Y"],
["1 a","1 b","1 a","1 a","1 b","1 c","1 b","1 c","1 b","1 a","1 a","1 c","1 b","1 a","1 a"],
["2 a","2 a","2 a","2 a","2 a","2 a","2 a","2 b","2 b","2 a","2 a","2 b","2 a","2 b","2 b"],
["3 b","3 c","3 b","3 c","3 a","3 b","3 c","3 b","3 b","3 b","3 c","3 c","3 a","3 c","3 b"],
["a X","a X","a Z","a Y","a Z","a X","a Y","a Z","a Z","a Z","a X","a X","a Y","a Y","a Z"],
["b Z","b Z","b X","b Z","b Z","b Z","b Z","b X","b Y","b Y","b X","b X","b Y","b Y","b Z"],
["c Y","c Y","c Y","c Y","c Z","c Z","c X","c X","c Z","c Y","c Y","c X","c Z","c Y","c X"],
["1 Z","1 Z","1 X","1 Y","1 X","1 Z","1 X","1 Y","1 Y","1 Z","1 X","1 Z","1 Y","1 Y","1 Y"],
["2 X","2 X","2 Y","2 Z","2 Y","2 X","2 X","2 Z","2 Y","2 Y","2 Y","2 X","2 Y","2 X","2 X"],
["3 X","3 X","3 Y","3 X","3 Y","3 Y","3 Y","3 X","3 Z","3 X","3 X","3 Y","3 Y","3 X","3 Y"]];

foreach (array_count_values($array[$i]) as $key => $value) {
                if(strrpos($key, "A")===0 && is_numeric(substr($key,2)))
                {$keycount1++;}
                else if(strrpos($key, "A")===0 && !is_numeric(substr($key,2))){
                array_push($lettersarray, substr($key, 2)); 
                }
                $probabilty=round(($value/count($array[$i])),2);
                echo "$key - <strong>$value</strong> <br/>Probability: $probabilty<br/>"; 
                $names=str_replace(' ', '', $key);
                $newarray[$key]=$probabilty;

        }

为什么要两次获得相同的值?

这将返回所有值的计数

$res = array_icount_values ($array);
echo '<pre>';print_r($res);

function array_icount_values($arr, $lower = true) {
    $arr2 = array();
    if (!is_array($arr['0'])) {
        $arr = array($arr);
    }
    foreach ($arr as $k => $v) {
        foreach ($v as $v2) {
            if ($lower == true) {
                $v2 = strtoupper($v2);
            }
            if (!isset($arr2[$v2])) {
                $arr2[$v2] = 1;
            } else {
                $arr2[$v2]++;
            }
        }
    }
    return $arr2;
}
$res=array\u icount\u值($array);
回声';印刷品(港币);;
函数数组\u i计数\u值($arr,$lower=true){
$arr2=数组();
如果(!is_数组($arr['0'])){
$arr=阵列($arr);
}
foreach($arr为$k=>$v){
foreach($v作为$v2){
如果($lower==true){
$v2=strtoupper($v2);
}
如果(!isset($arr2[$v2])){
$arr2[$v2]=1;
}否则{
$arr2[$v2]++;
}
}
}
返回$2;
}

我不明白你想要什么。你能澄清一下吗?我试试看。我有一个数组,我需要得到所有的唯一值,以及它们有多少,然后计算每个唯一值的概率。顺便说一句,一些代码做了一些其他的事情。代码对我来说很好,请看,谢谢Paul尝试。我明白了,它是有效的,但是为什么它不适合我。。。字母都是一样的(我的意思是没有其他语言的字母),但我得到了错误的结果…这可能会帮助你。它将返回所有值的计数,直到得到相同的结果
$res = array_icount_values ($array);
echo '<pre>';print_r($res);

function array_icount_values($arr, $lower = true) {
    $arr2 = array();
    if (!is_array($arr['0'])) {
        $arr = array($arr);
    }
    foreach ($arr as $k => $v) {
        foreach ($v as $v2) {
            if ($lower == true) {
                $v2 = strtoupper($v2);
            }
            if (!isset($arr2[$v2])) {
                $arr2[$v2] = 1;
            } else {
                $arr2[$v2]++;
            }
        }
    }
    return $arr2;
}