Ik heb de volgende array :
PHP Code:
array(5) {
[0] => array(3) { ["id"] => string(2) "50" ["departure_date"] => string(10) "2016-02-26" ["retour_date"] => string(10) "2016-02-28" }
[1] => array(3) { ["id"] => string(1) "4" ["departure_date"] => string(10) "2015-12-01" ["retour_date"] => string(10) "2015-12-07" }
[2] => array(3) { ["id"] => string(2) "89" ["departure_date"] => string(10) "2015-10-27" ["retour_date"] => string(10) "2015-11-04" }
[5] => array(3) { ["id"] => string(2) "28" ["departure_date"] => string(10) "2015-09-27" ["retour_date"] => string(10) "2015-10-04" }
[7] => array(3) { ["id"] => string(1) "7" ["departure_date"] => string(10) "2015-10-27" ["retour_date"] => string(10) "2015-11-04" } }
Hierin zie je bij nummer 2 en 7 dezelfde data staan ( departure_date en retour_date ).
Hoe kan ik nu tegen het systeem/code zeggen dat als er een zelfde departure en retour_date beschikbaar is, de laatst gevonden resultaat hiervan eruit moet worden verwijderen.
Thx alvast voor het meekijken en denken! Martijn
- Array comparison
-
17-09-2015, 14:25 #1
- Berichten
- 151
- Lid sinds
- 16 Jaar
Array comparison
Laatst aangepast door Martijn beek : 17-09-2015 om 14:31
-
In de schijnwerper
€10 verdienen? Plaats een review!Freelance / WerkLinkvada.com Linkbuilding Platform: Direct linkbuilden op 60.000+ premium domeinenLinkpartnersTransparant je linkbuilding uitbesteden? Equote.nl helpt je verder!LinkpartnersComplete domeinnamen portfolio te koop wegens voorlopig stoppenDomein te koop -
17-09-2015, 15:31 #2Particulier
- Berichten
- 1.412
- Lid sinds
- 15 Jaar
Re: Array comparison
In een loop controleren of de waarde al is toegevoegd en zo niet alsnog toevoegen?
Ik kan geen PHP maar in Javascript zou het princiepe er zo ongeveer uitzien.
Code:var currentDepartureDate = "2015-12-01"; var arr = []; var found = false; for (i=0;i<arr.length;i++){ if ( arr[i][2] == currentDepartureDate){ found = true; } } if(found == false){ //voeg toe aan array }
-
18-09-2015, 10:52 #3
- Berichten
- 151
- Lid sinds
- 16 Jaar
Re: Array comparison
Dank voor je antwoord Wilbert. Maar je geeft hier al de 'var currentDepartureDate' een waarde.
Ik kan die waarde niet geven. De waardes zitten in een array en het moet toch simpeler kunnen om dan direct, als de array wordt opgebouwd, te controleren of de departure_date al bestaat? In plaats van een loop in een loop.
-
18-09-2015, 13:07 #464BitsWebhosting.EU
- Berichten
- 2.092
- Lid sinds
- 17 Jaar
Re: Array comparison
Als je die array zoals nu opzet, zul je er doorheen moeten wandelen omdat je het vorige 'id' niet weet op het moment dat je een dubbele gaat toevoegen.
Je kunt de array beter opzetten zoals:
$arr[$departure_date][$retour_date] = $id
elke keer dat je dan een record aan je tabel toevoegt kun je met
if (!( isset($arr[ $new_departure_date ]) && isset ($arr[ $new_departure_date ][ $new_retour_date ]) )) {
$arr[ $new_departure_date ][ $new_retour_date ] = $new_id
}
-
18-09-2015, 13:09 #5Particulier
- Berichten
- 1.412
- Lid sinds
- 15 Jaar
Re: Array comparison
Je haalt de gegevens toch ergens vandaan (bijvoorbeeld een database) voordat je ze in de array stopt?
Je kunt de controle ook achteraf uitvoeren.
Code:loop [array] var [waarde die je controleerd] loop[array] kom je een dubbele tegen, gooi m eruit next next
Maar zoals ik zei: Ik weet niets van PHP, misschien kan het anders. Probeer je een richting in te sturen omdat niemand reageerde ;-)
[edit]
Op John nu na :P
-
18-09-2015, 13:11 #6
- Berichten
- 151
- Lid sinds
- 16 Jaar
Re: Array comparison
Dank allemaal voor de reacties.
Ik heb het net opgelost via een functie die ik naar lang zoeken tegenkwam.
PHP Code:function multidimensional_search($parents, $searched) {
if (empty($searched) || empty($parents)) {
return false;
}
foreach ($parents as $key => $value) {
$exists = true;
foreach ($searched as $skey => $svalue) {
$exists = ($exists && IsSet($parents[$key][$skey]) && $parents[$key][$skey] == $svalue);
}
if($exists){ return true; }
}
return false;
}
foreach ($aanbieders as $i => $aanbieder) {
if(!empty($aanbieder['departure_airportcode'])) {
$what = multidimensional_search($keepSeller, array('departure_date' => $aanbieder['departure_date'], 'retour_date' => $aanbieder['retour_date']));
if($what === false) {
$keepSeller[$i] = $aanbieder;
}
}
}
-
18-09-2015, 13:38 #7Particulier
- Berichten
- 1.412
- Lid sinds
- 15 Jaar
Re: Array comparison
Goed bezig!
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic