I have these two associative arrays
The needle array
$a = array(
"who" => "you",
"what" => "thing",
"where" => "place",
"when" => "hour"
);
The haystack array
$b = array(
"when" => "time",
"where" => "place",
"who" => "you",
"what" => "thing"
);
I want to check if the $a
has a match with the b
with its exact key
and value
and if each key and value from $a
has an exact match in $b
.... I want to increment the value of a variable $c
by 1 and so on...
as we've seen from above there 3 possible match...
and supposedly results to increment the value of $c
by 3
$c = "3";
OP actually used array_intersect_assoc()
for their specific usecase. (check comment)
The original answer was not really useful for their case!
you can look into the php's array_diff_assoc()
function or the array_intersect()
function.
Here's a sample on counting the matched values:
<?php
$a = array(
"who" => "you",
"what" => "thing",
"where" => "place",
"when" => "hour"
);
// the haystack array
$b = array(
"when" => "time",
"where" => "place",
"who" => "you",
"what" => "thing"
);
$c = count(array_intersect($a, $b));
echo $c;
?>
CODEPAD link.