我试图计算多维数组中字符串的出现并得到它。
所以我发现了这个: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()答案 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
}
}