我有一个数组如下。
Array
(
[0] => Array
(
[item] => Banana Cream Cheesecake
[item_id] => 3
[product] => Desserts
)
[1] => Array
(
[item] => Banana Cream Cheesecake
[item_id] => 3
[product] => Desserts
)
[2] => Array
(
[item] => Banana Cream Cheesecake
[item_id] => 3
[product] => Desserts
)
[3] => Array
(
[item] => Banana Cream Cheesecake
[item_id] => 3
[product] => Desserts
)
[4] => Array
(
[item] => Milk
[item_id] => 2
[product] => Soda
)
[5] => Array
(
[item] => Banana Cream Cheesecake
[item_id] => 3
[product] => Desserts
)
)
我想打印:-
Banana Cream Cheesecake = 5
怎么办?
$count = 0;
foreach ($array as $key=>$value) {
if ($value ['item'] == 'Banana Cream Cheesecake') {
$count++;
}
}
echo $count;
array_count_values(array_map(function($foo){return $foo['item'];}, $arr));
给定这样的数组:
$arr = array(array('item' => 'Banana Cream Cheesecake',
'item_id' => 3,
'product' => 'Desserts'),
array('item' => 'Banana Cream Cheesecake',
'item_id' => 3,
'product' => 'Desserts'),
array('item' => 'Banana Cream Cheesecake',
'item_id' => 3,
'product' => 'Desserts'),
array('item' => 'Banana Cream Cheesecake',
'item_id' => 3,
'product' => 'Desserts'),
array('item' => 'Milk',
'item_id' => 2,
'product' => 'Soda'),
array('item' => 'Banana Cream Cheesecake',
'item_id' => 3,
'product' => 'Desserts'));
您可以使用array_count_values并按其名称获取计数
$counted = array_count_values(array_map(function($value){return $value['item'];}, $arr));
echo $counted['Banana Cream Cheesecake'];
或者修改函数以使用项的 id:
$counted = array_count_values(array_map(function($value){return $value['item_id'];}, $arr));
// The item_id
echo $counted['3'];
print_r数组并计算奶酪蛋糕的出现次数。
不,说真的,没有更多信息,这是一个解决方案;)
$iCount = substr_count(print_r($array, true), "cheese cake");
扩展@steve的答案
$counted = array_count_values(array_map(function($foo){return $foo['item'];}, $arr));
这为您提供了一个数组,其中包含['item']
键的每个值的总计。
例如,这是您的示例将返回的数组:
$counted = Array
(
['Banana Cream Cheesecake'] => 5
['Milk'] => 1
)
然后,要打印它只是回显该变量的问题:
echo 'Banana Cream Cheesecake = ' . $counted['Banana Cream Cheesecake'];
//prints "Banana Cream Cheesecake = 5"
这里的优点是,您不需要为需要计数的每个值运行 for 循环 - 相反,您有一个数组,其中包含该特定键的所有值的总计。
今天做起来更简单。
这是您的阵列:
$products = array (
0 => array (
'item' => 'Banana Cream Cheesecake',
'item_id' => 3,
'product' => 'Desserts'
),
1 => array (
'item' => 'Banana Cream Cheesecake',
'item_id' => 3,
'product' => 'Desserts'
),
2 => array (
'item' => 'Banana Cream Cheesecake',
'item_id' => 3,
'product' => 'Desserts'
),
3 => array (
'item' => 'Banana Cream Cheesecake',
'item_id' => 3,
'product' => 'Desserts'
),
4 => array (
'item' => 'Milk',
'item_id' => 2,
'product' => 'Soda'
)
);
计数项目:
$counts = array_count_values(array_column($products, 'item'));
var_dump($counts);
在这里演示
干杯!:)
在处理字符串的数字 instad 时遇到问题,因为substr_count也接受键,所以我只使用普通计数而不是substr_count
并且工作正常。
$icount=count(print_r($_SESSION['id_bra'], true), $bran);
https://www.php.net/manual/en/function.count.php(菲律宾比索 4, 菲律宾比索 5, 菲律宾比索 7, 菲律宾比索 8)
count — 对数组或可数对象中的所有元素进行计数
var_dump(count($array));