Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Sprawdzanie array
Szymciosek
post
Post #1





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Witam,
może temat nie do końca przedstawia to co chcę osiągnąć, ale do rzeczy.

Mam dwie tablice:
  1. $existingCols = array
  2. (
  3. 'id' => false,
  4. 'content' => false
  5. );
  6.  
  7. $colsArray = array
  8. (
  9. 'id' => 'nowe id',
  10. 'content' => 'nowy content'
  11. );


Pierwsza "existingCols" reprezentuje jakie kolumny istnieją w bazie danych, w tym przypadku ID i CONTENT, należąca do każdego klucza wartość boolean określa czy dana kolumna może przyjmować wartość null czy nie. W przypadku false nie może.

Druga "colsArray" reprezentuje te dane, które chcę dodać do bazy, ale musi współpracować z "existingCols" czyli:
Ta opcja, która jest teraz na górze jest ok, ale muszę sprawdzać czy tak jest (nie wiem jakie dane dostaje)...

Więc wyobrażam to sobie w ten sposób:
1) Dostaję konkretne dane w postaci JSON (przekształcam na array), odczytuje z niego klucze i wartości. ($colsArray)
- do tej pory jest ok
2) Teraz te dane, które otrzymałem muszę porównać z $existingCols czy wszystko się zgadza, czy wysłane klucze zgadzają się ze wzorem i czy te klucze mogą być pominięte.
np. mogę wysłać:
-- id = 2
ale już nie muszę wysyłać content, jeśli ten ma ustawione true.

w powyższym przypadku muszę wysłać id i content żeby wszystko było spełnione.
- i tutaj zaczyna się problem

myślałem o zrobieniu czegoś na wzór:
  1. foreach ($existingCols as $key => $value)
  2. {
  3. foreach ($colsArray as $key2 => $value2)
  4. {
  5. // tutaj porównanie za pomocą in_array, ale nie przeszło to... pewnie dlatego, że w końcu klucze mu się mieszały itd
  6. }
  7. }


drugą opcją było użycie array_search i array_keys, ale nie miałem i nadal nie mam wizji na to...

Mam nadzieję, że ktoś rozumie moją wypowiedź w tym temacie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Szymciosek
post
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Prawie ale nie do końca, bo jeśli prześlę więcej niż potrzebuję muszę zwrócić informację o tym i zatrzymać działanie skryptu.

  1. $existingCols = array
  2. (
  3. 'id' => false,
  4. 'content' => false
  5. );
  6.  
  7. $colsArray = array
  8. (
  9. 'id' => 'nowe id',
  10. 'content' => 'nowy content',
  11. 'new' => 'cos new'
  12. );
  13.  
  14.  
  15. foreach ($colsArray as $key => $value)
  16. {
  17. if (array_key_exists($key, $existingCols))
  18. {
  19. echo $key . '<br />';
  20. }
  21. else
  22. {
  23. die ('probujesz podac za duzo kluczy');
  24. }
  25. }


Na razie mam coś takiego, ale jeszcze muszę sprawdzać czy muszę przesłać coś czy może być null.

Ten post edytował Szymciosek 11.03.2013, 19:06:28
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.09.2025 - 16:43