Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Przekształcenie wartości tablicy do int'a
Wykrywacz
post 15.07.2008, 18:20:07
Post #1





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Czy jest jakiś sposób aby zawartość tablicy przekształcić do int'a?

Problem:
Powiedźmy że w tablicy
$_POST[105] mam wartość 106.
Jednakże nazwy i wartości dla post były przydzielane dynamicznie whilem.

Teraz chce wywołać wartość tablicy $_POST[105],
poprzez wstawienie w jej wartość wartości z tablicy $wiersz[33] który równy jest 105, aby móc zmienić wartość tablicy $wiersz[33] wedle tego co jest w $_POST[105], czyli smile.gif

  1. <?php
  2. $wiersz[33] = $_POST[$wiersz[33]];
  3. ?>


O co chodzi :

Chce móc wsadzić wartość $wiersz[33] do $_POST tak aby uzyskać wartość która kryje się pod nazwą tożsamą do wartości $wiersz[33].
Go to the top of the page
+Quote Post
dr_bonzo
post 15.07.2008, 18:23:31
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Ze co?questionmark.gif Nic nie zrozumialem.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Wykrywacz
post 15.07.2008, 18:33:10
Post #3





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Omawiany POST powstaje poniżej (to to co się nazywa $s_dip['id_bank'])
  1. <?php
  2. $select_do_przelewow = mysql_query("SELECT banki.id_bank id_bank, banki.skrot, konta.konto konto
  3. FROM banki, konta
  4. WHERE banki.id = konta.id_bank
  5. AND konta.konto <> 0
  6. AND konta.id_typ = ".$_SESSION['typ']."");
  7.  
  8. while ($s_dip = mysql_fetch_array($select_do_przelewow)){
  9.  
  10. $select = mysql_query("SELECT banki.id_bank id_bank, banki.skrot FROM banki, konta WHERE banki.id 
    = konta.id_bank AND konta.konto <> 0 AND konta.id_typ = "
    .$_POST['typ']."");
  11. <SELECT NAME="'.$s_dip['id_bank'].'"><OPTION VALUE="'.$s_dip['id_bank'].'">';
  12. while ($s_di = mysql_fetch_array($select)){ echo 
  13. '<OPTION VALUE="'.$s_di['id_bank'].'">'.$s_di['skrot'].' '.$s_di['id_bank];
  14. }
  15. ?>

Potem wsadzam go w funkcję która wyciąga dane z plików, wartość POST decyduje o wartości jednego z nich:
  1. <?php
  2. function uzywane_konta($plik1,$typ,$sel_max_id,$wynik_konwersji,$_POST,$user,$control,$s_sciezki){
  3.  
  4. $imp = $plik1;
  5. $ilosc= count($imp);
  6. for ($i=0; $i < $ilosc; $i++){
  7. $wiersz = explode( ';', $imp[$i]);
  8. $plik = fopen("".$s_sciezki."".$sel_max_id.".txt","a");
  9. $wiersz[33] = $_POST[$wiersz[33];
  10. ?>

Ostatnia linijka jest oczywiście błędna (powiedźmy że wartość $wiersz[33] = 105, a $_POST[105] = 106.
Chciałbym móc w $_POST[ ] wsadzić wartość 105 którą posiada $wiersz[33] tak aby móc uzyskać wartość z $_POST[105]

Ten post edytował Wykrywacz 15.07.2008, 18:33:57
Go to the top of the page
+Quote Post
kaem
post 15.07.2008, 19:07:25
Post #4





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


Ja też za bardzo nie zrozumiałem.
Cytat
Chciałbym móc w $_POST[ ] wsadzić wartość 105 którą posiada $wiersz[33] tak aby móc uzyskać wartość z $_POST[105]

Jak dla mnie to opisałeś to co zrobiłeś w swoim kodzie czyli
  1. <?php
  2. $wiersz[33] = $_POST[$wiersz[33];
  3. ?>

Spróbuj jaśniej tiredsmiley.gif
Go to the top of the page
+Quote Post
Wykrywacz
post 15.07.2008, 19:13:10
Post #5





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Nie da się tak wywołać wartości $_POST.
O czym napisałem że jest to błędnie aczkolwiek efekt takiego ustawienia chciałbym osiągnąć.

Chce mieć np. zmienną :
$a która będzie int'em i która będzie posiadał wartość $wiersz[33].
Nie wiem jak to zrobić.

Ponieważ układ $_POST[$wiersz[33]] - Nie działa smile.gif
Go to the top of the page
+Quote Post
kaem
post 15.07.2008, 19:44:08
Post #6





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


A może coś takiego?
  1. <?php
  2. $_POST[strval(wiersz[33])];
  3. ?>

albo
  1. <?php
  2. $_POST["'".wiersz[33])."'"];
  3. ?>

Ale to ja tak teraz na biegu kombinuje tongue.gif Jak wrócę to się temu przyjrzę bliżej bo też jestem ciekaw.
Go to the top of the page
+Quote Post
dr_bonzo
post 15.07.2008, 19:46:54
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


eval( '$wiersz[33]' ) ?

chociaz pokrecone masz rozwiazanie, i pewnie da sie to normalniej zrobic


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Wykrywacz
post 15.07.2008, 21:57:02
Post #8





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


questionmark.gif evalem?

Ale $wiersz[33] to element zwykłej tablicy do której zaciągnąłem zawartość pliku co zresztą jest w przykładzie.(niema tam żadnego kodu tylko wartość 105 w tym akurat wypadku)
Wiem że w C# jest funkcja do konwertowania arreya na stringa a jego na int'a, ale nie znalazłem nigdzie w maualu php'owym czegoś takiego stąd pytanie smile.gif

$wiersz[33] zawiera dokładnie "105".
A $_POST[105] zawiera liczbę "106" (kwestia jest taka że ten $_POST zawiera też inne elementy)


To rozwiązanie z którym mam problem wydało mi się najprostsze i najszybsze, bo bez żadnych pętli czy selectów do bazy, jedynie na porównianiu 2 tablic, z czego po prostu w jednej z nich nie potrafię wywołać odpowiedniej wartości.

EDIT:
@keam wprawdzie to co podałeś nie pomogło ale naprowadziło mnie na rozwiązanie Ogromne dzięki.
Rozwiązanie to: smile.gif
  1. <?php
  2. $_POST[intval($wiersz[33])]
  3. ?>


Ten post edytował Wykrywacz 15.07.2008, 22:06:14
Go to the top of the page
+Quote Post
dr_bonzo
post 15.07.2008, 22:22:05
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


O_O o dzizez, to o to chodzilo?
i to $_POST[$wiersz[33]]; nie dzialalo?


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Wykrywacz
post 15.07.2008, 22:27:37
Post #10





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


O to smile.gif Źle po prostu szukałem w manualu i dopiero po naprowadzeniu znalazłem tą funkcję smile.gif ( a byłem pewien że jest bo każdy język ma taką funkcję)
a $_POST[$wiersz[33]]; nie nie chciało się wykonywać.
W każdym razie tobie również dziękuje za poświęcony czas smile.gif
Go to the top of the page
+Quote Post
kaem
post 15.07.2008, 23:08:08
Post #11





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


Tak jak napisałem, na biegu kombinowałem i to moje strval to trochę nie bardzo. Bo ze stringa robić stringa, no przecież to głupie rolleyes.gif Ale cieszę się, że naprowadziłem.

Ten post edytował kaem 15.07.2008, 23:11:56
Go to the top of the page
+Quote Post
dr_bonzo
post 15.07.2008, 23:12:04
Post #12





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


  1. <pre><?php
  2.  
  3. $_POST = array( 105 => 'one', 2 => 'two' ); // indexy liczbowe
  4. $wiersz = array( 33 => '105' ); // a tu stringowe
  5.  
  6. print( $_POST[$wiersz[33]]); // dzialaja tak samo!!!
  7. ?>


wynik: "one" - wiec jak nie dizala jak dziala?
-------------
edit:
tak BTW,

Cytat
Problem:
Powiedźmy że w tablicy
$_POST[105] mam wartość 106.
Jednakże nazwy i wartości dla post były przydzielane dynamicznie whilem.

Teraz chce wywołać wartość tablicy $_POST[105],
poprzez wstawienie w jej wartość wartości z tablicy $wiersz[33] który równy jest 105, aby móc zmienić wartość tablicy $wiersz[33] wedle tego co jest w $_POST[105], czyli


nijak ma sie do przedstawionego przez ciebie kodu? jakie wywolywanie, mieszasz wartosci z indeksami itd. pokreciles strasznie smile.gif

Ten post edytował dr_bonzo 16.07.2008, 00:03:23


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
kaem
post 15.07.2008, 23:28:54
Post #13





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


No faktycznie działa.
Wykrywacz, a może np. w wiersz[33] masz coś jeszcze oprócz cyfr, i dlatego wcześniej nie działało?
Bo jeśli działa tylko z intval, to mi się wydaje, że jest tam coś jeszcze w tym łańcuchu. dry.gif Nawet przez białe znaki może się sypać.

Ten post edytował kaem 15.07.2008, 23:30:40
Go to the top of the page
+Quote Post

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: 13.06.2025 - 02:06