我想从循环创建数组并从该数组中计数相同的值

时间:2019-04-04 06:51:07

标签: php arrays loops

我想从循环创建数组。

我尝试使用array_count_values()对数组元素进行计数,但是循环中的变量未读作数组。

这是我的代码

$var_from_loop = "true,true,true,false,false";

我希望输出:

true = 3
false = 2

3 个答案:

答案 0 :(得分:5)

使用爆炸(doc)通过C2将字符串转换为数组,然后使用array-count-values

,

实时示例:https://3v4l.org/FHrqi

答案 1 :(得分:4)

方法1的步骤:

1)您可以先用explode()用逗号(,)将字符串转换为数组。

您将获得以下数组:

Array
(
    [0] => true // 1st true
    [1] => true // 2nd true
    [2] => true // 3rd true 
    [3] => false // 1st false
    [4] => false // 2nd false
)

2)您将获得一个包含3个true和2个false值(元素)的数组。

3)然后使用array_count_values()计算一个值进入数组的次数。

<?php
$var_from_loop = "true,true,true,false,false";
$arr = explode(',', $var_from_loop);
echo '<pre>';
print_r(array_count_values($arr));
echo '</pre>';

输出:

Array
(
    [true] => 3
    [false] => 2
)

Working example:

方法2的步骤(仅3行代码):

您甚至可以使用substr_count()

$var_from_loop = "true,true,true,false,false";
echo 'TRUE: '.substr_count($var_from_loop, 'true');
echo '<br/>FALSE: '.substr_count($var_from_loop, 'false');

输出:

TRUE: 3
FALSE: 2

答案 2 :(得分:2)

使用爆炸和数组计数功能

eval_metric=r2_score

输出:-

$var_from_loop = "true,true,true,false,false";
print_r(array_count_values(explode(",",$var_from_loop)));