Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [solved][php]zamiana wartosci elementow tabilicy
sir_skiner
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.07.2007

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


witajcie.
powiedzcie mi w czym tkwi moja glupota. mam podwojna tablice asocjacyjna a w niej klucze ze stringami w postaci urli => "http://foo.boo.pl". o tak:
  1. <?php
  2. $tab=array('moo'=>array('shmoo'=>'zoo', 'url'=>'http://foo.boo.pl'...), ...)
  3. ?>

chce zamienic konkretne wartosci na inne, ale dupa jestem. niezaleznie czy wywoluje elementy;
  1. <?php
  2. foreach ($tab as $k => $v){
  3. //czy przez 
  4. str_replace($staryurl, $nowyurl, $v[url]);
  5. // czy przez ifa
  6. if ($v[url]==$staryurl)
  7. {
  8. $v[url]=$nowyurl;
  9. }
  10. }
  11. ?>

nic sie nie dzieje...
jak to poprawnie zrobic?

Ten post edytował sir_skiner 12.08.2007, 17:57:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Zmienia się tablica $v. Natomiast ty najprawdopodobniej zaraz za tą pętlą korzystasz z $tab, której w pętli nie tykałeś ;]

  1. <?php
  2.  
  3. foreach( $tab as $k => $v ) {
  4. $tab[$k]['url'] = str_replace( $staryurl, $nowyurl, $v['url'] );
  5. }
  6.  
  7. ?>
Go to the top of the page
+Quote Post
sir_skiner
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.07.2007

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


albom zupelnie tepy i zle to implementuje, albo problem tkwi gdzie indziej... tylko nie wiem gdzie.

ja nieco uproscilem, nie sadzilem by to cos zmienialo, moze nie slusznie, wiec doprecyzuje, ze $tab jest tablica zagniezdzona:

  1. <?php
  2. $tab0 = array( $tab01 => array( 'foo'=>'shmoo01', ..., 'tab'=> array( ... ) )
  3.  ...
  4. $tab_n => array( 'foo'=>'shmoo_n', ..., 'tab'=> array( ... ) ) )
  5. ?>


tak, ze wywoluje ja w zagniezdzonym foreach:
  1. <?php
  2. foreach ($tab0 as $k0 => $v0)
  3. { 
  4. //kod iteracji
  5.  foreach ($v0['tab'] as $k => $v)
  6. {
  7. $v0['tab'][$k]['url'] = str_replace( $staryurl, $nowyurl, $v['url'] );
  8. //inny kod
  9.  }
  10. }
  11. ?>


(IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) sory ze tak mace, ale czy to cos zmienia?
Go to the top of the page
+Quote Post
Kicok
post
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


  1. <?php
  2.  
  3. $tablica = array(
  4. 'klucz1' => array( 'pod_klucz1' => 'aaa', 'pod_klucz2' => 'aaa' ),
  5. 'klucz2' => array( 'pod_klucz1' => 'aaa', 'pod_klucz2' => 'aaa' )
  6. );
  7.  
  8.  
  9. foreach( $tablica as $key => $value )
  10. {
  11. // Zmieniasz wartość zmiennej: $value
  12. $value['pod_klucz1'] = 'bbb';
  13. }
  14.  
  15. // Wyświetlasz wartość zmiennej: $tablica
  16. echo '<pre>' . print_r( $tablica, true ) . '</pre>';
  17.  
  18. ?>

  1. <?php
  2.  
  3. $tablica = array(
  4. 'klucz1' => array( 'pod_klucz1' => 'aaa', 'pod_klucz2' => 'aaa' ),
  5. 'klucz2' => array( 'pod_klucz1' => 'aaa', 'pod_klucz2' => 'aaa' )
  6. );
  7.  
  8.  
  9. foreach( $tablica as $key => $value )
  10. {
  11. // Zmieniasz wartość zmiennej: $tablica
  12. $tablica[$key]['pod_klucz1'] = 'bbb';
  13. }
  14.  
  15. // Wyświetlasz wartość zmiennej: $tablica
  16. echo '<pre>' . print_r( $tablica, true ) . '</pre>';
  17.  
  18. ?>



Znajdź 10 różnic między tymi kodami (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
sir_skiner
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.07.2007

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


widze tylko roznice w wywoloniu podkluczy petla foreach... w sumie to dziwne dla mnie, ze $value i $tablica[$key] nie sa tozsame, ale swiadom ulomnosci swego umyslu przyjmmuje to as is. sek w tym, ze o ile:
  1. <?php$tab[$k]['pod_klucz']='bbb';?>
dziala, o tyle:
  1. <?php$tab[$k]['pod_klucz']=str_replace($cos, $cos_innego, $v['pod_klucz'];?>
ani nawet:
  1. <?php$tab[$k]['pod_klucz']=str_replace($cos, $cos_innego, $tab[$k]['pod_klucz'];?>
nie dziala;/

dobra, strazny wstyd, ale sobie zasluzylem i obnaze sie publicznie.str_replace mi nie zamienial nic, bo mu podalem zle parametry....dzieki za pomoc i sorki za trucie, ale sie dopiero ucze :roll2:

Ten post edytował sir_skiner 12.08.2007, 17:55:57
Go to the top of the page
+Quote Post

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: 6.10.2025 - 01:18