Array vergelijken met 2 dimensionale array en matches tonen
zoals tittel al zegt ik heb een array $inrange die bevatten postcode na een berekening van afstand
nu moet ik deze vergelijken met een 2dimensionale array waarin installateursID en een postcode in zitten de instalateur die matchen met postcodes inrange moeten getoond worden ( de id's van deze installateurs)
maar geraak er niet uit
// gemaakte arrays
// vul de array in
Code (php)
1
2
2
$postcodesinstallateur[][0] = $showinstal2[0];
$postcodesinstallateur[][1] = $showinstal2[1];
$postcodesinstallateur[][1] = $showinstal2[1];
dacht aan zo iets
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
foreach($inrange as $match)
{
if(in_array($match, $postcodeinstallateur))
$resultinrange.....
}
{
if(in_array($match, $postcodeinstallateur))
$resultinrange.....
}
Alvast bedankt
Gewijzigd op 09/05/2011 13:57:39 door Matthias deckers
Kun je een paar voorbeeld array's geven met daarin wat gegevens?
Code (php)
1
2
3
4
5
2
3
4
5
$inrange = array(9150, 7210, 2800, 9180);
// aray(postcode,installateurID)
$postcodeinstallateur = array(array(9150, 23),array(2700, 14),array(9180,45));
// aray(postcode,installateurID)
$postcodeinstallateur = array(array(9150, 23),array(2700, 14),array(9180,45));
dan zou na vergelijking alleen nog moete bekomen installateurid 23 en 45
Gewijzigd op 09/05/2011 12:41:46 door matthias deckers
Code (php)
Ik vindt je opbouw alleen een beetje raar.
Lijkt me een stuk overzichtelijker.
ik was dus niet ver weg van oplossingen eens testen
bedankt
Kan dit niet gemakkelijker met array_intersect of array_intersect_uassoc?
Warning: Invalid argument supplied for foreach() in /home/domotica/domains/domus.md-design.be/public_html/domoticamodel.php on line 855
Edit : typefoutje nog in al weg :-)
Toevoeging op 09/05/2011 13:51:08:
die array result blijft leeg ? ik heb net al mijn arrays getest of er waardes in staan en alles word correct aangevuld
Gewijzigd op 09/05/2011 13:22:41 door matthias deckers
Kees Schepers op 09/05/2011 13:03:31:
Kan dit niet gemakkelijker met array_intersect of array_intersect_uassoc?
Werkt inderdaad zeer netjes.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$arr1 = array(23 => 9150, 14 => 2700, 45 => 9180, 89 => 9150);
$arr2 = array(9150, 7210, 2800, 9180);
print_r(array_intersect($arr1, $arr2));
?>
$arr1 = array(23 => 9150, 14 => 2700, 45 => 9180, 89 => 9150);
$arr2 = array(9150, 7210, 2800, 9180);
print_r(array_intersect($arr1, $arr2));
?>
Geeft:
Array (
[23] => 9150
[45] => 9180
[89] => 9150
)
Gewijzigd op 09/05/2011 13:57:49 door - SanThe -
hoe maak ik mijn array aan dan ? ik had $postcodesinstallateur = aray(array(); moet gevuld worden met $showinstal2[1] als id en $showinstal2[0] als postcode
Gewijzigd op 09/05/2011 14:23:13 door matthias deckers
Zie mijn post. Zo moet je de array's vullen. Het id is de key en de postcode is de value. Het andere array heeft alleen value's en die keys zijn niet belangrijk.
$postcodesinstallateur[][0] = $showinstal2[1];
$postcodesinstallateur[][1] = $showinstal2[0];
ik moet uiteindelijk ook alleen id als resultaat hebben want dit moet nog eens in een query om de naam van installateur op te roepen
Gewijzigd op 09/05/2011 14:25:58 door matthias deckers
Doe het zo:
$postcodesinstallateur[$showinstal2[1]] = $showinstal2[0];
$showinstal2[1] moet het id zijn.
$showinstal2[0] is dan de postcode.
met dit zou ik die array moete opvullen ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<? for($i=0; $i <= count($instalateursid); $i++) // postocdes in array plaatsen
{
$instalateurnaambepaling = "SELECT postcode,instalateurID FROM tblInstalateur WHERE instalateurID = '$instalateursid[$i]'";
$resinstal2 = mysql_query($instalateurnaambepaling) or die(mysql_error());
$num_rows = mysql_num_rows($resinstal2);
for($b=1; $b <= $num_rows; $b++)
{
if($num_rows == 0 || $instalateursid[$i] == null ) {
}else{
$showinstal2 = mysql_fetch_row($resinstal2);
//echo "<b>Installateur: </b>".$showinstal2[0]."<b> Email: </b>".$showinstal2[1]."<br /><br />";
// array vullen
$postcodesinstallateur[$showinstal2[1]] = $showinstal2[0];
}
}
} ?>
{
$instalateurnaambepaling = "SELECT postcode,instalateurID FROM tblInstalateur WHERE instalateurID = '$instalateursid[$i]'";
$resinstal2 = mysql_query($instalateurnaambepaling) or die(mysql_error());
$num_rows = mysql_num_rows($resinstal2);
for($b=1; $b <= $num_rows; $b++)
{
if($num_rows == 0 || $instalateursid[$i] == null ) {
}else{
$showinstal2 = mysql_fetch_row($resinstal2);
//echo "<b>Installateur: </b>".$showinstal2[0]."<b> Email: </b>".$showinstal2[1]."<br /><br />";
// array vullen
$postcodesinstallateur[$showinstal2[1]] = $showinstal2[0];
}
}
} ?>
Toevoeging op 09/05/2011 15:01:44:
op 1 of andere vage manier werkt het plots geen idee wat ik gedaan heb maarja
bedankt iedereen