19. oktober 2013 - 23:32
Der er
1 kommentar
Tjek om data fra en array er i en anden array
Jeg har en bruger array som ser ud som følger:
Array ( [0] => Array ( [id] => 1 [navn] => Niels [by] => Århus ) [1] => Array ( [id] => 2 [navn] => Martin [by] => Odense ) [2] => Array ( [id] => 3 [navn] => Christian [by] => Herning ) .... osv )
Derud over har jeg en array, med nogle udvalgte byer:
Array ( [0] => Array ( [by] => Århus ) [1] => Array ( [by] => Odense ) )
Jeg vil gerne lave et tjek, om byerne i array 2 er i array 1.
Så hvis en af brugerne bpr i byen. Vil byen blive skrevet med rødt.
Lige pt udskriver jeg bruger data med en foreach lykke, og prøver at finde match med in_array(). Det virker bare ikke.
Jeg har gjort følgende
if(in_array($arrayet['by'], $arrayto)){}
20. oktober 2013 - 01:30
#1
Det maa kunne goeres paa mange maader, men her er en:
<?php
function all_in($needle, $haystack, $key) {
return count(array_uintersect($needle, $haystack, function($v1, $v2) use($key) { return $v1[$key] == $v2[$key] ? 0 : 1; })) == count($needle);
}
function test($needle, $haystack) {
if(all_in($needle, $haystack, 'by')) {
echo "Found\r\n";
} else {
echo "Not found\r\n";
}
}
$haystack = array(array('id' => 1, 'navn' => 'Niels', 'by' => 'Århus'), array('id' => 2, 'navn' => 'Martin', 'by' => 'Odense'), array ('id' => 3, 'navn' => 'Christian', 'by' => 'Herning'));
$needle1 = array(array ('by' => 'Århus'), array ('by' => 'Odense'));
$needle2 = array(array ('by' => 'Århus'), array ('by' => 'Esbjerg'));
test($needle1, $haystack);
test($needle2, $haystack);
?>