Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przekształcenie wartości tablicy do int'a
Forum PHP.pl > Forum > Przedszkole
Wykrywacz
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].
dr_bonzo
Ze co?questionmark.gif Nic nie zrozumialem.
Wykrywacz
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]
kaem
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
Wykrywacz
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
kaem
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.
dr_bonzo
eval( '$wiersz[33]' ) ?

chociaz pokrecone masz rozwiazanie, i pewnie da sie to normalniej zrobic
Wykrywacz
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. ?>
dr_bonzo
O_O o dzizez, to o to chodzilo?
i to $_POST[$wiersz[33]]; nie dzialalo?
Wykrywacz
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
kaem
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.
dr_bonzo
  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
kaem
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ć.
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.