您好,
我们如何在multidimensional array
?
我有一个像这样的数组
Array
(
[0] => Array
(
[lid] => 192
[lname] => sdsss
)
[1] => Array
(
[lid] => 202
[lname] => testing
)
[2] => Array
(
[lid] => 192
[lname] => sdsss
)
[3] => Array
(
[lid] => 202
[lname] => testing
)
)
如何查找每个元素的数量?
,即标识为192
,202
等的条目数
答案 0 :(得分:18)
你可以采用这个技巧;将数组的每个项目(这是一个数组本身)映射到其各自的['lid']
成员,然后使用array_count_value()
为您进行计数。
array_count_values(array_map(function($item) {
return $item['lid'];
}, $arr);
另外,它是一个单行,因此增加了精英黑客的地位。
从5.5开始,您可以将其缩短为:
array_count_values(array_column($arr, 'lid'));
答案 1 :(得分:2)
foreach ($array as $value)
{
$numbers[$value[lid]]++;
}
foreach ($numbers as $key => $value)
{
echo 'numbers of '.$key.' equal '.$value.'<br/>';
}
答案 2 :(得分:2)
以下代码将计算数组的重复元素。请查看它并尝试此代码
$arrayChars=array("green","red","yellow","green","red","yellow","green");
$arrLength=count($arrayChars);
$elementCount=array();
for($i=0;$i<$arrLength-1;$i++)
{
$key=$arrayChars[$i];
if($elementCount[$key]>=1)
{
$elementCount[$key]++;
} else {
$elementCount[$key]=1;
}
}
echo "<pre>";
print_r($elementCount);
输出:
排列
(
[green] =&gt; 3
[red] =&gt; 2
[黄色] =&gt; 2
)
您还可以在以下链接中查看类似处理的类似问题 http://solvemyquest.com/count-duplicant-element-array-php-without-using-built-function/
答案 3 :(得分:0)
以下代码将获取所有这些代码的计数 - 任何&gt;最后1将重复。
<?php
$lidCount = array();
$lnameCount = array();
foreach ($yourArray as $arr) {
if (isset($lidCount[$arr['lid']])) {
$lidCount[$arr['lid']]++;
} else {
$lidCount[$arr['lid']] = 1;
}
if (isset($lnameCount [$arr['lname']])) {
$lnameCount [$arr['lname']]++;
} else {
$lnameCount [$arr['lname']] = 1;
}
}
答案 4 :(得分:0)
$array = array('192', '202', '192', '202');
print_r(array_count_values($array));
答案 5 :(得分:0)
$orders = array(
array(
'lid' => '',
'lname' => '',
))....
$foundIds = array();
foreach ( $orders as $index => $order )
{
if ( isset( $foundIds[$order['lid']] ) )
{
$orders[$index]['is_dupe'] = true;
$orders[$foundIds[$order['lid']]]['is_dupe'] = true;
} else {
$orders[$index]['is_dupe'] = false;
}
$foundIds[$order['lid']] = $index;
}
答案 6 :(得分:0)
试试这段代码:
$array_count = array();
foreach ($array as $arr) :
if (in_array($arr, $array_count)) {
foreach ($array_count as $key => $count) :
if ($key == $arr) {
$array_count[$key]++;
break;
}
endforeach;
} else {
$array_count[$arr] = 1;
}
endforeach;
答案 7 :(得分:0)
使用in_array()
功能检查。