login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Array data vergelijken

Offline BaddyZ - 23/03/2009 12:13
Avatar van BaddyZNieuw lid Hallo,

hoe kan ik data uit 2 verschillende array met elkaar vergelijken.
Bijvoorbeeld

$a = Array( "test","aap");
$b = Array( "TEST","aapje");

( en dan $a en b verglijken of strings gelijk zijn )

En hoe kun je ook alweer data uit een array naar lowercase veranderen? 

7 antwoorden

Gesponsorde links
Offline Abbas - 23/03/2009 12:30
Avatar van Abbas Gouden medaille

Crew .NET
Lower-case: strtolower()

Gewoon een for-loop:

  1. $a = array(...);
  2. $b = array(...);
  3.  
  4. for($i = 0; $i < count($a); $i++)
  5. {
  6. if(strtolower($a[$i]) == strtolower($b[$i]))
  7. echo "Gelijke elementen";
  8. }
Offline BaddyZ - 23/03/2009 12:44
Avatar van BaddyZ Nieuw lid A PHP Error was encountered

Severity: Notice

Message: Array to string conversion

en het if( == ) heb ik al eerder geprobeerd en dat werkte niet, ik haal de gegevens uit de database en stop het in een array en de andere haal ik via een input(dus met $_POST) misschien dat het daarom niet werkt?
Offline Abbas - 23/03/2009 13:00
Avatar van Abbas Gouden medaille

Crew .NET
Misschien moet je iets meer code geven zodat we een eventuele fout kunnen ontdekken. Nu hebben we er het raden naar! 
Offline BaddyZ - 23/03/2009 13:36
Avatar van BaddyZ Nieuw lid
  1. $outputTagsArray = explode(",",$_POST['tag']);
  2. $tagsArray = preg_replace('/\s\s+/', ' ', $outputTagsArray);
  3.  
  4. $this->db->select('tag_name');
  5.  
  6. $query = $this->db->get('tag');
  7.  
  8. $queryArray = $query->result_array();
  9.  
  10. for($i = 0; $i < count($queryArray); $i++){
  11. for($i = 0; $i < count($tagsArray); $i++){
  12. if(strtolower($queryArray[$i]) == strtolower($tagsArray[$i])){
  13. echo $tagsArray[$i];
  14.  
  15. }
  16. }
  17. }


PS: ik werk in codeigniter(MVC)
Offline Abbas - 23/03/2009 13:55
Avatar van Abbas Gouden medaille

Crew .NET
Waarom een loop in een loop? Als je telkens gewoon het overeenkomstige element uit de array (eerste met eerste, tweede, met tweede, ...) wil vergelijken hoef je maar 1 loop te gebruiken, ervan uitgaande dat allebei de arrays even lang zijn. Anders kan je de kortste nemen zodat je al geen Out of Range Exception krijgt.
Offline Ibrahim - 25/03/2009 08:09 (laatste wijziging 25/03/2009 08:10)
Avatar van Ibrahim PHP expert Waarom een loop, als je de values een strtolower wil geven, moet je gewoon lekker gebruik maken van array_map('strtolower', $arrayMetWaarden);

edit:
voor vergelijken zou ik kiezen voor count(array_diff($eersteArray, $tweedeArray));

Komt hier 0 uit, dan zijn de array's gelijk. Een neat trucje dat ik van Gerard heb geleerd 
Offline Wim - 25/03/2009 09:13
Avatar van Wim Crew algemeen Overigens, nooit PHP.net: count in een for loop gebruiken. Sla deze waarde op in een variabele en gebruik die in je for loop, zo voert de server de count() niet steeds opnieuw uit!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s