我有这样的数组
$array1 = array(Array('b','d'),
Array('c','a'),
Array('b','d'),
Array('a','d'),
Array('c'),
Array('c'),
Array('a','d','e'),
Array('d','b')
);
$array2 = array(array('c'),array('a','d'), array('b','d'), array('a,','d','e')) ;
$result = array();
这是我的代码:
foreach ($array2 as $part) {
$key = implode(', ', $part);
if( ! array_key_exists ($key, $array1)) {
$result[$key] = 0;
}
$result[$key] = $result[$key] + 1;
}
foreach ($result as $key => $value) {
echo "$value of {$key}<br/>";
}
我想根据$ array1计算值$ array2 我得到了这个:
1 of c
1 of a, d
1 of b, d
1 of a, d, e
但我想要一个这样的结果:
3 of c
2 of a, d
2 of b, d
1 of a, d, e
如果有人想知道为什么会有(2个,d),那么array('a','d')
和array('a','d','e')
答案 0 :(得分:0)
此代码应该有效:
$result = array();
$array1 = array(
array('b','d'),
array('c','a'),
array('b','d'),
array('a','d'),
array('c'),
array('c'),
array('a','d','e'),
array('d','b')
);
$array2 = array(
array('c'),
array('a','d'),
array('b','d'),
array('a,','d','e')
);
foreach ($array2 as $part) {
$key = implode(', ', $part);
if(!array_key_exists ($key, $array1)) {
$result[$key] = 0;
}
foreach($array1 as $data) {
$dataKey = implode(', ', $data);
if(strpos($dataKey, $key) > -1) {
$result[$key]++;
}
}
}
foreach ($result as $key => $value) {
echo "$value of {$key}<br/>";
}
它产生的结果是:
3 of c
2 of a, d
2 of b, d
0 of a,, d, e
注意0 of a,, d, e
。这是由$array2
- array('a,','d','e')