PHP数组计数和获取元素值
我对PHP和编程相当陌生,所以我在这方面遇到了麻烦 整个情况的目的是从以制表符分隔的文件(已经这样做了)中读取一列,获取其中的所有不同项,分别对它们进行计数,并将它们放入带有PHP数组计数和获取元素值,php,Php,我对PHP和编程相当陌生,所以我在这方面遇到了麻烦 整个情况的目的是从以制表符分隔的文件(已经这样做了)中读取一列,获取其中的所有不同项,分别对它们进行计数,并将它们放入带有Column1[item value-label],Column2[count]的表中 我把整列放在一维数组中。现在,我想列出那里的所有项目及其旁边的计数。问题是,我可能有超过10个不同的项目,甚至更多,所以我不能像这样手动操作(命名10个变量并逐一计数): $arr = array("complete","fail","c
Column1[item value-label],Column2[count]的表中 我把整列放在一维数组中。现在,我想列出那里的所有项目及其旁边的计数。问题是,我可能有超过10个不同的项目,甚至更多,所以我不能像这样手动操作(命名10个变量并逐一计数):
$arr = array("complete","fail","complete","exit","fail","fail","complete");
function isComplete($value){
return ($value == "complete") ? true : false;
}
$complete = array_filter($array, 'isComplete');
<tr>
<td>Complete</td>
<td><?php echo count($complete)?></td>
</tr>
-- > Complete = 3
$arr=数组(“完成”、“失败”、“完成”、“退出”、“失败”、“失败”、“完成”);
函数已完成($value){
返回($value==“complete”)?真:假;
}
$complete=array_filter($array,'isComplete');
完成
-->完成=3
我希望避免为每个值手动创建每个函数,因为每个文件的值可能不同
$array中的项目数最多可达20+k,因此我需要所有自动化项目。有人能帮我吗?检查一下数组并将计数放入另一个数组如何?(
$arrCount
)
这将创建一个数组,其中键是各种标签,值等于标签总数
打印
输出:
阵列([完成]=>3[失败]=>3[退出]=>1)
Psuedo代码:
$arr = array("complete","fail","complete","exit","fail","fail","complete");
$counts = array();
foreach($arr => $key as $value)
{
if(array_key_exists($value, $counts))
{
$counts[$value]++;
}else{
$counts[$value] = 1;
}
}
foreach($counts => $key as $value)
{
echo '<tr>
<td>' . $key . '</td>
<td>' . $value . '</td>
</tr>';
}
$arr=数组(“完成”、“失败”、“完成”、“退出”、“失败”、“失败”、“完成”);
$counts=array();
foreach($arr=>$key作为$value)
{
如果(数组\键\存在($value,$counts))
{
$counts[$value]++;
}否则{
$counts[$value]=1;
}
}
foreach($counts=>$key作为$value)
{
回声'
“.$key。”
“.$value。”
';
}
我们正在制作列表中元素的数组。如果项目存在,则增加值,否则使用值1创建。然后再循环一次,向用户显示每个项目的总计数。也许我没有抓住要点,但是正常循环有什么问题? 例如:
function countByValue($array, $value){
$count = 0;
foreach($array as $val){
if ($val == $value){
$count++;
}
}
return $count;
}
并称之为
$complete = countByValue($arr, 'complete');
如果你想一次把它们都数完,就用F4r-20回答。我得到的是“注意:未定义索引:填写…”每$keyGreat!非常感谢。这正是我想做的。我将它与@Niels reply和table echo结合起来,得到了正确的结果。非常感谢你!这是“foreach($counts=>$key as$value)”的正确写法吗?我得到了语法错误。谢谢,我使用了你的第二部分代码和顶级答案,它按照我想要的方式工作;)
$complete = countByValue($arr, 'complete');