Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z in_array
Forum PHP.pl > Forum > Przedszkole
skowron-line
  1. <?php
  2. $zapytanie = 'SELECT DISTINCT dir FROM foto';
  3. $query = mysql_query($zapytanie);
  4.  
  5. $dir = array();
  6. while($row = mysql_fetch_array($query)) {
  7. $dir[] = $row;
  8. }
  9.  
  10. $katalog = "../galerie";
  11. $kat = opendir($katalog);
  12. while($plik = readdir($kat)) {
  13.  
  14. if(($plik != ".") AND ($plik != "..")) {
  15.  
  16. if(!is_file($plik)) {
  17.  
  18.  $disable = '';
  19.  
  20. if(in_array($plik,$dir)) {
  21.  
  22. $disable = 'disabled';
  23.  
  24. }
  25.  
  26. echo'<input type="radio" name="dir" value="'.$plik.'" disabled="'.$disable.'">'.$plik.'</br>';
  27.  
  28. }
  29.  
  30. }
  31.  
  32. }
  33.  
  34. }
  35. ?>


mam taki kod ktory wyciaga nazwe folderow z bazy a potem wyciaga nazwy folderow z folderu i ma porownywac i jezeli nazwa znajduje sie w tablicy nazw z bazy to ma dac wartosc parametrowi disable jednak tak sie nie dzieje wszystkie nazwy mam disalbe

robie
  1. <?php
  2. print_r($dir)
  3. ?>

i to mi daje
Kod
Array ( [0] => Array ( [0] => skof [dir] => skof ) )

a nazwy w folderze z ktorego wyciagam mam
- skof
- abc

w czym moze tkwic problem
dr_bonzo
fetch_array zwraca ci tablice: nazwa_pola => wartosc
a ty oczekujesz w tablicy $dir samych stringow a masz tablice
skowron-line
bonzo to co proponujesz?? bo ja nie mam pomyslu na to
ikioloak
Nie wnikalem za bardzo co twoj kod robi (sesyja - czasu brak :/), wiec moze moja sugestia bedzie nieprawidlowa, ale z tego co widze potrzebujesz skorzystac z rekurencyjnej wersji in_array() - ktorej w php nie ma. Jest za to w komentarzach do dokumentacji:
  1. <?
  2. function in_arrayr($needle, $haystack) {
  3.  foreach ($haystack as $v) {
  4.  if ($needle == $v) return true;
  5.  elseif (is_array($v)) return in_arrayr($needle, $v);
  6.  }
  7.  return false;
  8. }
  9. // i think it works
  10. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.