PHP - Count array based on other array -
i have 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')) ; $result = array(); here's code:
foreach ($array2 $part) { $key = implode(', ', $part); if( ! array_key_exists ($key, $array1)) { $result[$key] = 0; } $result[$key] = $result[$key] + 1; } foreach ($result $key => $value) { echo "$value of {$key}<br/>"; } i want count values $array2 based on $array1
got one:
1 of c 1 of a, d 1 of b, d 1 of a, d, e but want result this:
3 of c 2 of a, d 2 of b, d 1 of a, d, e if wonders why there's (2 of a,d), array('a','d') , array('a','d','e')
this code should work:
$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 $part) { $key = implode(', ', $part); if(!array_key_exists ($key, $array1)) { $result[$key] = 0; } foreach($array1 $data) { $datakey = implode(', ', $data); if(strpos($datakey, $key) > -1) { $result[$key]++; } } } foreach ($result $key => $value) { echo "$value of {$key}<br/>"; } the result produces is:
3 of c 2 of a, d 2 of b, d 0 of a,, d, e notice 0 of a,, d, e. caused typo in $array2 - array('a,','d','e')
Comments
Post a Comment