Pagina 1 din 1

Cautare valori egale in 2 array-uri multidimensionale

Scris: Vin Noi 27, 2015
de andras
Salut,
Am 2 array-uri rezultate din 2 interogari pe 2 tabele in BD. Vreau sa caut daca un cimp (adica o cheie) din primul array exista in al doilea array, iar daca valoarea acelei chei este egala cu o anumita variabila, sa pun in primul array valoarea 1 intr-un alt cimp (cheie) Am incercat:

Cod: Selectaţi tot

<?php
foreach($result as $row){  //$result este primul array
  $cheie = $row['id'];  // id-ul user
// acum vreau sa caut cimpul (cheia) 'elevid' din $result2 (al doilea array) si daca are valoarea $cheie ma intorc la primul array si pun valoare 1 in alt cimp
  if(array_key_exists('elevid', $result2) && $result2['elevid']== $cheie){
    echo 'gasit cheia';
    $row['cecelev']=1;
  }  
}
?>
Nu-mi iese deloc, nu stiu unde gresesc. Care ar fi instructiunea corecta? Multumesc.

Cautare valori egale in 2 array-uri multidimensionale

Scris: Sâm Noi 28, 2015
de MarPlo
Salut
Daca si $result2 e un array cu doua dimensiuni, cred ca trebuie foreach() aplicat si la $result2, sa ai 2 foreach() imbricate.
Iar valoarea 1, ca sa fie adaugata la $result, se aplica la acesta (nu la $row, care e variabila tranzitorie)
Incearca asa:

Cod: Selectaţi tot

foreach($result as $k =>$row){  //$result e primul array multidimensional
  //caut cimpul (cheia) 'elevid' din $result2 (array multidimensional) si compar cu valoarea id din $result
  //daca valorile sunt egale, aplica 1 la campul 'cecelev' din $result din randul curent parcurs
  foreach($result2 as $row2){
    if(isset($row2['elevid']) && $row['id'] == $row2['elevid']){
      $result[$k]['cecelev'] =1;
      echo 'Gasit: '. $row['id'];
    }
  }
} 
- Daca nu reusesti sa rezolvi, posteaza aici cele doua array-uri sa vedem structura lor. Poti sa aplici acest cod ca sa copii array-urile:

Cod: Selectaţi tot

var_export($result);
echo '<br>';
var_export($result2); 

Cautare valori egale in 2 array-uri multidimensionale

Scris: Sâm Noi 28, 2015
de andras
Functioneaza corect cu foreach imbricat. Scopul acestor instructiuni este (simplificat) ca in tabelul html corespunzator primului array am un checkbox, care la afisare sa fie deja bifat daca id-ul exista in al doilea tabel. De fapt verific 2 cimpuri, dar ideea e aceeasi. Multumesc!