Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Višedimenzioni nizovi, matrice, dodela vrednosti

[es] :: PHP :: Višedimenzioni nizovi, matrice, dodela vrednosti

[ Pregleda: 2612 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

EmmaR
Srbija

Član broj: 269847
Poruke: 466



+172 Profil

icon Višedimenzioni nizovi, matrice, dodela vrednosti24.06.2011. u 13:56 - pre 156 meseci
primer dvodimenzionog niza

$niz=array( array(1,2,3), array(1,2,3) , array(1,2,3) , array(1,2,3) );

Pitanje je sledeće:
Pošto se višedimenzioni nizovi sastoje od više podnizova, da li je moguće da se kreiraju spajanjem odgovarajućeg broja nizova?

U ovom slučaju
$nizA=array(1,2,3,4);
$nizB=array(1,2,3);

$niz=( $nizB, $nizB, $nizB, $nizB )

dok bi konačni, dvodimenzioni niz, sadržao povezane članove iz oba niza:
$niz[n][m]=( $nizA[n] $nizB[m] ) // nadam se da je jasno šta pokušavam pošto za sada ne umem bolje. n = 0, 1,2,3 M = 0, 1,2

$niz[n]=$nizB // $niz[n]=array(1,2,3)



ER
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Višedimenzioni nizovi, matrice, dodela vrednosti24.06.2011. u 15:08 - pre 156 meseci
Nisam siguran da li sam dobro razumeo problem

http://php.net/array_fill_keys
Banned - Not available
 
Odgovor na temu

EmmaR
Srbija

Član broj: 269847
Poruke: 466



+172 Profil

icon Re: Višedimenzioni nizovi, matrice, dodela vrednosti [rešeno]24.06.2011. u 21:40 - pre 156 meseci
Nije baš to, ali hvala za link. Ima interesantnih stvari.

Uspela sam da rešim. Rešenje je bilo ispred nosa a ja ga nisam videla.

Evo primera:

Code:

...
$red=range(1,10);
$vrsta=range(1,10);
$nizrv=array();
// od nizova $red i $vrsta nastaje dvodimenzionalni niz $nizrv
for($i=0;$i<sizeof($red);$i++)
{
    for($j=0;$j<sizeof($vrsta);$j++)
    {
     $nizrv[$i][$j]=$vrsta[$j];
    }
}

//stampa dvodimenzionalni niz
echo "<br/>";
for($i=0;$i<sizeof($nizrv);$i++)
{
    for ($j=0;$j<sizeof($nizrv[$i]);$j++)
    {
        echo $nizrv[$i][$j]," ";        
    }
    echo "<br/>";
}
...


ER
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-8.sezampro.rs.



+33 Profil

icon Re: Višedimenzioni nizovi, matrice, dodela vrednosti25.06.2011. u 13:18 - pre 156 meseci
Isti rezultat, uz malo manje linija kôda:
Code:
$vrsta = range(1, 10);
$nizrv = array_fill(0, 10, $vrsta);
 
Odgovor na temu

EmmaR
Srbija

Član broj: 269847
Poruke: 466



+172 Profil

icon Re: Višedimenzioni nizovi, matrice, dodela vrednosti25.06.2011. u 20:39 - pre 156 meseci
Citat:
Nikola Poša: Isti rezultat, uz malo manje linija kôda:
Code:
$vrsta = range(1, 10);
$nizrv = array_fill(0, 10, $vrsta);


Zatrčala sam se. Zbog jako smešnog i glupog razloga array_fill nije radilo.

Medjutim, i ne treba mi. Jer, i problem je pogrešno postavljen, na početku (na kraju stavljeno kako treba ali bez vrednosti. Kod prethodno navedenog primera to se ne primećuje.

Ovako, imam 2 niza
niza=(1,2,3) i nizb=(a,b,c) od kojih treba da dobijem nizc=( (1,a) , (2,b) , (3,c) )

To je rešeno na sledeći način:

Code:

....
$niza=array(1,2,3);
$nizb=array("a","b","c");
$nizc=array(array(1,"a") , array(2,"b"), array (3,"c") );

echo "</b>";

//formirati 2d niz
$niz_2d=array();
echo "<br> 2d niz formiranje i stampa - ocekujem. 1*a 2*b 3*c<br>";
for($i=0;$i<sizeof($niza);$i++)
{
 $niz_2d[$i]=$niza[$i]."*".$nizb[$i];
 echo $niz_2d[$i]." ";
}

//dvodimenzionalni niz
$niz_tmp=array_fill(0,sizeof($niz_2d),0);  // bunio se ako se stavi prazan niz
$niz_3d=array();
for($i=0;$i<sizeof($niz_2d);$i++)
{
 $niz_tmp =explode( "*", $niz_2d[$i] );
 for($j=0;$j<sizeof($niz_tmp);$j++)
 {
    $niz_3d[$i][$j] = $niz_tmp[$j];
    echo $niz_3d[$i][$j]." ";
 }
 echo "<br>";
}
....


Možda postoji jednostavniji način?
ER
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Višedimenzioni nizovi, matrice, dodela vrednosti25.06.2011. u 21:39 - pre 156 meseci
Code (php):

$niza = array(1,2,3);
$nizb = array("a","b","c");

$nizc = array_map(null, $niza, $nizb);

echo '<pre>' . print_r($nizc, true) . '</pre>';

Banned - Not available
 
Odgovor na temu

EmmaR
Srbija

Član broj: 269847
Poruke: 466



+172 Profil

icon Re: Višedimenzioni nizovi, matrice, dodela vrednosti27.06.2011. u 11:55 - pre 156 meseci
Citat:
Br@nkoR
Code (php):

$niza = array(1,2,3);
$nizb = array("a","b","c");

$nizc = array_map(null, $niza, $nizb);

echo '<pre>' . print_r($nizc, true) . '</pre>';


Hvala.


ER
 
Odgovor na temu

[es] :: PHP :: Višedimenzioni nizovi, matrice, dodela vrednosti

[ Pregleda: 2612 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.