计算多维数组

时间:2015-04-22 12:33:06

标签: php arrays multidimensional-array

我试图计算多维数组中字符串的出现并得到它。

所以我发现了这个:http://php.net/manual/fr/function.array-count-values.php 用户贡献笔记"。

中的例子

这是我的代码:

$count_values = array();
foreach ($Bigtable as $a)
{
    foreach ($a as $table)
    {
        $count_values[$table]++;             // line 32
    }
}
asort($count_values,SORT_NUMERIC );
$onet_code=end ($count_values);

这是我的错误:注意:未定义的索引:第32行/home/goldiman1/www/postQuestion.php中的11-1011.00

我认为当我尝试获取字符串时,错误就在最后一行。

你们怎么看?

谢谢

Goldiman

编辑:谢谢大家的帮助!所有解决方案都像魅力一样工作,我理解问题是什么,理解Kasia答案更容易,因为我更熟悉isset()

3 个答案:

答案 0 :(得分:4)

$count_values[$table]++;

这一行试图增加$count_values[$table]中的值 - 但你从来没有初始化该值!

如果该值不存在,则需要更改此代码以将值设置为1,并且只有在存在时才增加该值。

答案 1 :(得分:2)

如果数组(键)上存在$table,则递增值,否则创建新值。试试这个 -

foreach ($Bigtable as $a)
{
    foreach ($a as $table)
    {
        if (array_key_exists($table, $count_values)) {
            $count_values[$table]++;
        } else {
            $count_values[$table] = 1;
        }
    }
}

答案 2 :(得分:1)

默认情况下 $ count_values [$ table] 将不会设置

foreach ($a as $table)
{
    if(isset($count_values[$table])){
        $count_values[$table]++;
    } else {
        $count_values[$table] =1
    }
}