Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zwrócenie tablica dwuwymiarowej z funkcji
Forum PHP.pl > Forum > Przedszkole
uczeń php
Witam
Jak zwrócić tablice dwuwymiarową z funkcji ?
Pozdrawiam
nospor
dziwne pytanie... tak samo jak jednowymiarową czy trzy wymiarową. Moze opisz problem dokladniej smile.gif
uczeń php
Mam napisany skrypt w php w sposób strukturalny. Programik ten odczytuje dane z pliku tekstowego w postaci
aaaaa bbbbbb ccccc dddd eeeee
aaaaa bbbbbb ccccc dddd eeeee
aaaaa bbbbbb ccccc dddd eeeee
aaaaa bbbbbb ccccc dddd eeeee
Wyrażnie widać że to tablica dwuwymiarowa w literaturze tablica tablic. Chciałbym ten programik - który w strukturalnie działa mi bez zarzutu napisać obiektowo. smile.gif. a oto kod php:

while(($wej_bd == true)&&($row > $w))
{
$ind = 0; $sprawdzenie_danych = 0; $kol = 0; $puste_pola = 0;

for($bd_s = $i; $bd_s <= $lkbd; $bd_s++)
{

if((($bd_s != 5) && ($bd_s != 6)) && (($bd_s != 9) && ($bd_s != 10))) // Pominięcie nie potrzebnych pól z excela.
{
if((((!empty($tabcsv[$w][$bd_s])) &&((empty($tabcsv[$w][4])) || (!empty($tabcsv[$w][4])))))&&((empty($tabcsv[$w][8])) || (!empty($tabcsv[$w][8]))))
{
if(!empty($tabcsv[$w][4]))
{
$tabcsv[$w][4] = str_replace(",",".",$tabcsv[$w][4]); //Zamiana ceny przecinka na kropkie
}

if((($bd_s == 1) || ($bd_s == 11))||(($bd_s == 12)||($bd_s == 4)))
{
if(is_numeric($tabcsv[$w][$bd_s])) {
$tabela_bd[$rekord][$kol] = $tabcsv[$w][$bd_s]; $kol++;
}
else
{
echo ' NIEZGODNY TYP DANYCH NA POZYCJI: '.$w.' '.$bd_s; $blad = true;
}
}
else
{
if((($bd_s == 2) || ($bd_s == 3))||(($bd_s == 7)||($bd_s == 8)))

if(!is_numeric($tabcsv[$w][$bd_s]))
{
$tabela_bd[$rekord][$kol] = $tabcsv[$w][$bd_s]; $kol++;
}
else
{
echo ' NIEZGODNY TYP DANYCH NA POZYCJI: '.$w.' '.$bd_s; $blad = true;
}
}
}
else
{
// $tabela_bd[$rekord][$kol] = $tabcsv[$w][$bd_s];
if($bd_s < $num)
if((empty($tabcsv[$w][$bd_s+1]))&&(empty($tabcsv[$w][$bd_s-1])))
{
// echo ' PUSTY REKORD NA POZYCJI: '.$w.' ZOSTAŁ USUNIĘTY ';
unset($tabela_bd[$rekord][$kol]);
}
else {
if(($bd_s != 4) && ($bd_s != 8)) {
echo ' PUSTE POLE NA POZYCJI: '.$w.' '.$bd_s;
$blad = true;
}
}
$kol++;
}
}
}

$w++; $rekord++;
}


} // KONIEC WERYFIKACJI POPRAWNOŚCI PLIKU

Chciałbym zamienić go na funkcję która zwróci ma tablicę dwuwymiarową $tabela_bd[$rekord][$kol]
blooregard
Proszę dodać BBCode.
nospor
no to wsadź to w funkcję, która na koncu bedzie miala:
return $tabela_bd;
Gdzie widzisz problem? I uzywaj bbcode!
thek
Robisz to tak jak wszystko inne... Zwróć jako określoną strukturę. Jeśli za utworzenie będzie odpowiedzialna metoda, to w return ja zwracaj. A jeśli nie da się tylko są błędy to zwracaj choćby FALSE.
uczeń php
A może ktoś mi pomoże zamienić ten fragment kodu na funkcję bo coś mi nie wychodzi. Pozdro
nospor
To pokaz kod co napisales

ps: przenosze.
ps2: wlacz wyswietlanie wszyskich bledow
wiecej info tu:
Temat: Jak poprawnie zada pytanie
mortus
Cytat
Chciałbym ten programik - który w strukturalnie działa mi bez zarzutu napisać obiektowo.
Cytat
Chciałbym zamienić go na funkcję która zwróci ma tablicę dwuwymiarową $tabela_bd[$rekord][$kol]
Co chcesz w końcu zrobić? Bo to, że ze skryptu napisanego strukturalnie zrobisz funkcję nie oznacza, że będzie to napisane obiektowo. Wręcz przeciwnie, nadal będzie to programowanie strukturalne.
Cytat
A może ktoś mi pomoże zamienić ten fragment kodu na funkcję bo coś mi nie wychodzi. Pozdro

Ale co Ci nie wychodzi, funkcji nie potrafisz zadeklarować
  1. function pobierzCSV($filename) {
  2. // pobieramy zawartość pliku $filename
  3. // przetwarzamy dane i umieszczamy je w tablicy $tab
  4. return $tab;
  5. }
Jako argument można, a nawet wypadałoby podawać nazwę pliku, bo ta może być zmienna.
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.