我有一个数组如下。
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
怎么做?
答案 0 :(得分:7)
$count = 0;
foreach ($array as $key=>$value) {
if ($value ['item'] == 'Banana Cream Cheesecake') {
$count++;
}
}
echo $count;
答案 1 :(得分:5)
array_count_values(array_map(function($foo){return $foo['item'];}, $arr));
答案 2 :(得分:3)
给出这样的数组:
$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'];
答案 3 :(得分:1)
扩展@ steve的answer
$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循环 - 而是你有一个数组,其中包含该特定键的所有值的总数。
答案 4 :(得分:0)
print_r数组并计算你的芝士蛋糕的出现次数。
不,严重的是,如果没有更多信息,这是一个解决方案;)
$iCount = substr_count(print_r($array, true), "cheese cake");
答案 5 :(得分:0)
在处理数字而不仅仅是字符串时遇到问题,因为substr_count也使用了键,因此我只使用普通计数而不是substr_count
并且工作正常。
$icount=count(print_r($_SESSION['id_bra'], true), $bran);
答案 6 :(得分:0)
今天更容易做到这一点。
这是您的数组:
$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);
干杯! :)