Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Tabela asocjacyjna
Kamis
post 24.03.2014, 11:45:23
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 13.05.2003

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


Mam następujący kod:

  1. $table_time_after_work = array (
  2. '[15][6]' => '1',
  3. '[25][6]' => '2',
  4. '[35][6]' => '3',
  5. )
  6. while ($table_time_after_work as $key_time_after_work => $time_after_work){
  7. if ($key_time_after_work == '[$p_bug_data->priority][$p_bug_data->project_id]'){
  8. $set_time_after_work = $time_after_work;
  9. }
  10. }


Czy dobrze łączę pierwszy klucz: [$p_bug_data->priority][$p_bug_data->project_id]?
Jeśli ustali wartość to jak ją pobrać: $set_time_after_work = $time_after_work; ?

Ten post edytował Kamis 24.03.2014, 11:47:55


--------------------
Jeśli wiesz jak coś zrobić zrób to, jeśli nie wiesz... ryzykuj :o)
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post 24.03.2014, 12:17:21
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Lektura obowiązkowa
http://pl1.php.net/manual/en/language.operators.string.php
http://pl1.php.net/manual/en/language.types.string.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mar1aczi
post 24.03.2014, 12:17:59
Post #3





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Znasz takie funkcje jak var_dump, czy print_r?
Skorzystaj z jednej z nich dla tego fragmentu
Cytat(Kamis @ 24.03.2014, 11:45:23 ) *
'[$p_bug_data->priority][$p_bug_data->project_id]'

przypisując wcześniej powyższe pod tymczasową zmienną.


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
Kamis
post 24.03.2014, 12:29:50
Post #4





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 13.05.2003

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


  1. $table_time_after_work = array (
  2. '[15][6]' => '1',
  3. '[25][6]' => '2',
  4. '[35][6]' => '3',
  5. )
  6. $time_table=print_r ($table_time_after_work);
  7. while ($table_time_after_work as $key_time_after_work => $time_after_work){
  8. if ($key_time_after_work == '$time_table'){
  9. $set_time_after_work = $time_after_work;
  10. }
  11. }


Chodziło o coś takiego?


--------------------
Jeśli wiesz jak coś zrobić zrób to, jeśli nie wiesz... ryzykuj :o)
Go to the top of the page
+Quote Post
nospor
post 24.03.2014, 12:31:48
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Po pierwsze nie WHILE a FOREACH
A po drugie dostales ode mnie linki - zapoznaj sie z nimi, bo tam masz odpowiedz jak sie buduje teksty łączone ze zmiennymi


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kamis
post 24.03.2014, 12:43:25
Post #6





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 13.05.2003

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


  1. $table_time_after_work = array (
  2. '[15][6]' => '1',
  3. '[25][6]' => '2',
  4. '[35][6]' => '3',
  5. )
  6. foreach ($table_time_after_work as $key_time_after_work => $time_after_work){
  7. if ($key_time_after_work == '{[$p_bug_data->priority]}.{[$p_bug_data->project_id]}'){
  8. $set_time_after_work = $time_after_work;
  9. }
  10. }


Mała podpowiedź?


--------------------
Jeśli wiesz jak coś zrobić zrób to, jeśli nie wiesz... ryzykuj :o)
Go to the top of the page
+Quote Post
nospor
post 24.03.2014, 12:45:33
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Miales zapoznac sie a nie przejrzec po lebkach :/
Zas co do {} to miales podaną całą mase przykładów :/

Zmienne widoczne sa tylko w cudyzslowiach a nie w apostrofach....
"[{$p_bug_data->priority}][{$p_bug_data->project_id}]"
Jeszcze raz zobacze ze tak zlewasz prostą lekture, tematy twoje bede zamykal
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kamis
post 25.03.2014, 10:26:21
Post #8





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 13.05.2003

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


Dzięki. Przepraszam.

A co tutaj robię źle?
facepalmxd.gif

  1. <?php
  2. $actual_number_week = date("l");
  3. //[dzien_tygodnia] => poczatek_pracy_godzina|poczatek_pracy_minuty|koniec_pracy_godzina|koniec_pracy_m
    inuty
  4. function what_time($actual_number_week){
  5.  
  6. $table_office_time = array (
  7. 'Monday' => '0|30|15|30',
  8. 'Tuesday' => '1|30|15|30',
  9. 'Wednesday' => '2|32|12|32',
  10. 'Thursday' => '3|30|15|30',
  11. 'Friday' => '4|30|15|30',
  12. 'Saturday' => '5|30|15|30',
  13. 'Sunday' => '6|30|15|30'
  14. );
  15.  
  16. foreach ($table_office_time as $table_office_actual_number_week => $table_office_time_work){
  17. if ($table_office_actual_number_week == "{$actual_number_week}"){
  18. list($table_office_time_work_sh, $table_office_time_work_sm, $table_office_time_work_eh, $table_office_time_work_em) =
  19. explode("|", $table_office_time_work );
  20. }
  21. return $table_office_time_work_sh;
  22. return $table_office_time_work_sm;
  23. return $table_office_time_work_eh;
  24. return $table_office_time_work_em;
  25. }
  26.  
  27. }
  28. echo $what_time->$table_office_time_work_sh;
  29. ?>


--------------------
Jeśli wiesz jak coś zrobić zrób to, jeśli nie wiesz... ryzykuj :o)
Go to the top of the page
+Quote Post
nospor
post 25.03.2014, 10:29:24
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




RETURN w funkcji moze byc tylko JEDEN gdyz NATYCHMIAST konczy on dzialanie funkcji

Nie wiem tez czy jest sens bys dawal RETURN w petli, gdy po pierwszym RETURN jak juz mowilem funkcja sie konczy a co za tym idzie petla juz sie wiecej razy nie wykona.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ghost1511
post 25.03.2014, 10:35:50
Post #10





Grupa: Zarejestrowani
Postów: 186
Pomógł: 18
Dołączył: 2.09.2010

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


Cytat(Kamis @ 25.03.2014, 10:26:21 ) *
Dzięki. Przepraszam.

A co tutaj robię źle?
facepalmxd.gif

  1. <?php
  2. $actual_number_week = date("l");
  3. //[dzien_tygodnia] => poczatek_pracy_godzina|poczatek_pracy_minuty|koniec_pracy_godzina|koniec_pracy_m
    inuty
  4. function what_time($actual_number_week){
  5.  
  6. $table_office_time = array (
  7. 'Monday' => '0|30|15|30',
  8. 'Tuesday' => '1|30|15|30',
  9. 'Wednesday' => '2|32|12|32',
  10. 'Thursday' => '3|30|15|30',
  11. 'Friday' => '4|30|15|30',
  12. 'Saturday' => '5|30|15|30',
  13. 'Sunday' => '6|30|15|30'
  14. );
  15.  
  16. foreach ($table_office_time as $table_office_actual_number_week => $table_office_time_work){
  17. if ($table_office_actual_number_week == "{$actual_number_week}"){
  18. list($table_office_time_work_sh, $table_office_time_work_sm, $table_office_time_work_eh, $table_office_time_work_em) =
  19. explode("|", $table_office_time_work );
  20. }
  21. return $table_office_time_work_sh;
  22. return $table_office_time_work_sm;
  23. return $table_office_time_work_eh;
  24. return $table_office_time_work_em;
  25. }
  26.  
  27. }
  28. echo $what_time->$table_office_time_work_sh;
  29. ?>


Ciężko się trochę połapać w tym Twoim kodzie. Tak na początek: po pierwszym napotkanym 'return' funkcja kończy działanie. a więc nie dostaniesz 4 wyników. Zwróć wynik w postaci tablicy smile.gif

edit:
Nospor jak zwykle szybszy smile.gif

Ten post edytował ghost1511 25.03.2014, 10:37:08
Go to the top of the page
+Quote Post
Kamis
post 25.03.2014, 10:37:42
Post #11





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 13.05.2003

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


Dzięki. Co nie zmienia sytuacji, że coś jest nadal źle bo nie zwraca mi moich czterech wartości...

  1. <?php
  2. $actual_number_week = date("l");
  3. function what_time($actual_number_week){
  4.  
  5. $table_office_time = array (
  6. 'Monday' => '0|30|15|30',
  7. 'Tuesday' => '1|30|15|30',
  8. 'Wednesday' => '2|32|12|32',
  9. 'Thursday' => '3|30|15|30',
  10. 'Friday' => '4|30|15|30',
  11. 'Saturday' => '5|30|15|30',
  12. 'Sunday' => '6|30|15|30'
  13. );
  14.  
  15. foreach ($table_office_time as $table_office_actual_number_week => $table_office_time_work){
  16. if ($table_office_actual_number_week == "{$actual_number_week}"){
  17. list($table_office_time_work_sh, $table_office_time_work_sm, $table_office_time_work_eh, $table_office_time_work_em) =
  18. explode("|", $table_office_time_work );
  19. }
  20. }
  21. return;
  22. }
  23. echo $table_office_time_work_sh;
  24. echo $table_office_time_work_sm;
  25. echo $table_office_time_work_eh;
  26. echo $table_office_time_work_em;
  27. echo $what_time->$table_office_time_work_sh;
  28. ?>


--------------------
Jeśli wiesz jak coś zrobić zrób to, jeśli nie wiesz... ryzykuj :o)
Go to the top of the page
+Quote Post
Turson
post 25.03.2014, 10:39:12
Post #12





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


return; <- nie uwazasz, ze tu czegos brakuje, jak chocby jakiejs zmiennej ktora zwracasz?
Go to the top of the page
+Quote Post
Kamis
post 25.03.2014, 10:42:26
Post #13





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 13.05.2003

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


  1. return $table_office_time_work_sh,$table_office_time_work_sm,$table_office_time_work_eh,$table_office_time_work_em;

a w ogóle dobrze się odwołuję do tej funkcji?


--------------------
Jeśli wiesz jak coś zrobić zrób to, jeśli nie wiesz... ryzykuj :o)
Go to the top of the page
+Quote Post
ZaXaZ
post 25.03.2014, 10:43:21
Post #14





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Kamis @ 25.03.2014, 10:37:42 ) *
Dzięki. Co nie zmienia sytuacji, że coś jest nadal źle bo nie zwraca mi moich czterech wartości...

  1. <?php
  2. $actual_number_week = date("l");
  3. function what_time($actual_number_week){
  4.  
  5. $table_office_time = array (
  6. 'Monday' => '0|30|15|30',
  7. 'Tuesday' => '1|30|15|30',
  8. 'Wednesday' => '2|32|12|32',
  9. 'Thursday' => '3|30|15|30',
  10. 'Friday' => '4|30|15|30',
  11. 'Saturday' => '5|30|15|30',
  12. 'Sunday' => '6|30|15|30'
  13. );
  14.  
  15. foreach ($table_office_time as $table_office_actual_number_week => $table_office_time_work){
  16. if ($table_office_actual_number_week == $actual_number_week){ //skasowałem "{ i }"
  17. list($table_office_time_work_sh, $table_office_time_work_sm, $table_office_time_work_eh, $table_office_time_work_em) =
  18. explode("|", $table_office_time_work );
  19. }
  20. }
  21. return true; //zwroc coś skoro return uzywasz jak nie to true.
  22. //--edit-- wpisz po przecinku nazwy zmiennych (te które chcesz użyć w echo).
  23. }
  24. echo $table_office_time_work_sh;
  25. echo $table_office_time_work_sm;
  26. echo $table_office_time_work_eh;
  27. echo $table_office_time_work_em;
  28. echo $what_time->$table_office_time_work_sh; //a to przejście chyba złe jest lub ja nie doedukowany, -> się używa do dostępu funkcji/zmiennej klasy, czy ja czegoś niewiem?
  29. ?>


Ten post edytował ZaXaZ 25.03.2014, 10:52:41


--------------------
Go to the top of the page
+Quote Post
IProSoft
post 25.03.2014, 11:00:38
Post #15





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


Na podstawie Twojego toku rozumowania:
  1. $actual_number_week = date("l");
  2.  
  3. function what_time( $actual_number_week )
  4. {
  5.  
  6. $table_office_time = array(
  7. 'Monday' => '0|30|15|30',
  8. 'Tuesday' => '1|30|15|30',
  9. 'Wednesday' => '2|32|12|32',
  10. 'Thursday' => '3|30|15|30',
  11. 'Friday' => '4|30|15|30',
  12. 'Saturday' => '5|30|15|30',
  13. 'Sunday' => '6|30|15|30'
  14. );
  15.  
  16. foreach ( $table_office_time as $table_office_actual_number_week => $table_office_time_work )
  17. {
  18. if ( $table_office_actual_number_week == $actual_number_week )
  19. {
  20.  
  21. list( $table_office_time_work_sh, $table_office_time_work_sm, $table_office_time_work_eh, $table_office_time_work_em ) = explode("|", $table_office_time_work );
  22.  
  23. return array(
  24. 'table_office_time_work_sh' => $table_office_time_work_sh,
  25. 'table_office_time_work_sm' => $table_office_time_work_sm,
  26. 'table_office_time_work_eh' => $table_office_time_work_eh,
  27. 'table_office_time_work_em' => $table_office_time_work_em,
  28. );
  29. }
  30. }
  31.  
  32. return false;
  33.  
  34. }
  35.  
  36. $table_office = what_time( $actual_number_week );
  37.  
  38. if( !empty( $table_office ) )
  39. {
  40. print_r( $table_office );
  41. }


Przyjrzyj się i zobacz co zwróci funkcja.


--------------------
Manual prawdę Ci powie.
Go to the top of the page
+Quote Post
Kamis
post 25.03.2014, 14:47:24
Post #16





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 13.05.2003

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


Ok. Zwrócił kolejną tablicę.
Rozumiem, że napisałem to "nie po Bożemu". Czy mogę prosić o podpowiedź jak to zrobić dobrze?


--------------------
Jeśli wiesz jak coś zrobić zrób to, jeśli nie wiesz... ryzykuj :o)
Go to the top of the page
+Quote Post
nospor
post 25.03.2014, 14:55:54
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Toc przeciez IProSoft podal ci jak to masz zrobic. Czego jeszcze nie rozumiesz? Wszystko juz masz podane


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kamis
post 25.03.2014, 14:57:53
Post #18





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 13.05.2003

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


Wiem, ale po prostu zastanawiam się czy można było to napisać lepiej - bo się uczę.
To dotyczy
  1. Na podstawie Twojego toku rozumowania:


--------------------
Jeśli wiesz jak coś zrobić zrób to, jeśli nie wiesz... ryzykuj :o)
Go to the top of the page
+Quote Post
nospor
post 25.03.2014, 14:59:47
Post #19





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Twoja petla jest totalnie zbedna.

echo $table_office_time[$actual_number_week];
I juz masz dane ktore cie interesują


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kamis
post 26.03.2014, 07:33:05
Post #20





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 13.05.2003

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


Trochę zmodyfikowałem skrypt. Jest prostrzy.Uczę się. Dzięki za porady.
Mogę jeszcze prosić o podpowiedź co tym razem robię źle?

  1. <?php
  2. $actual_number_week = date("l");
  3. function what_time( $actual_number_week ){
  4.  
  5. $table_office_time = array(
  6. "Monday"=>array("1","30","15","30"),
  7. "Tuesday"=>array("2","30","15","30"),
  8. "Wednesday"=>array("3","30","15","30"),
  9. "Thursday"=>array("4","30","15","30"),
  10. "Friday"=>array("5","30","15","30"),
  11. "Saturday"=>array("6","30","15","30"),
  12. "Sunday"=>array("7","30","15","30")
  13. );
  14. //print($table_office_time["$actual_number_week"][0]);
  15. $a=$table_office_time["$actual_number_week"][0];
  16. $b=$table_office_time["$actual_number_week"][1];
  17. $c=$table_office_time["$actual_number_week"][2];
  18. $d=$table_office_time["$actual_number_week"][3];
  19. return {$a},{$b},{$c},{$d};
  20. }
  21.  
  22. print($a);
  23.  
  24. ?>


--------------------
Jeśli wiesz jak coś zrobić zrób to, jeśli nie wiesz... ryzykuj :o)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 13:32