Jump to content
php.lv forumi

multidimensiju masivi un cikls


Raiviic

Recommended Posts

Sveiki, saakshu ar to ka googlets ir 2dienas, un nav saprashanas joprojam kaa to dabut gatavu (pilnigs idiots es neesmu).

Tatad problema:

ir multidimensiju masivs while ciklaa - ir vajadziba ar php palidzibu sakartot masivu pec vienas no vertibam:

 

attiecigi:

$i = 0;
while (nosacijums)
{
$masivs = array();
$masivs[$i] = $xyz[mainiga vertiba]['strings'];
$masivs2[] = $masivs;
unset($masivs);
$i++;
}

 

Interneta atradu ka lai ierakstitu masiva kas atrodas cikla vajag izmantot velvienu masivu ka bufferi.

es pieljauju ka ir kautkas vieglaks bet diemzel prata spejas to neredz vel.

 

Tatad problema ir sekojosha - sakartot (rsort vai foreach)un izvadit datus no masiva $masivs[$i] kartojot tos pec ['strings'] vertibas

es ceru ka uzrakstiju saprotami un kads spec palidzet ar padomu

Paldies.

Link to comment
Share on other sites

meginashu tagad skalji domat un saprast -

 

piemera ir - $fruits[0]["fruit"] = "lemons";

a man ir $masivs[$i] = $xyz[mainiga vertiba]['strings'];

 

shi laikam skaitas kartoshana pec key vertibas(piemeeraa) a man taka vajadzetu pec value vertibas

 

es nerunaju mulkjibas tagad ?

 

shaja gadijuma strada 2+3 = 5 un 5 = 2+3 ?

Edited by Raiviic
Link to comment
Share on other sites

Hm.. paskatījos cītīgāk uz tavu kodu - tur kautkāds krapains masīvs tev taisās. Tipa (ja pareizi saprotu):

$masivs2 = array(
 array(0 => "strings1"),
 array(1 => "strings2"),
 array(2 => "strings3"),
);

Kā kautko tādu tu tur gribi sakārtot? Katram stringam ir piesaisīta tas skaitils pēc kārtas ($i), kuru nedrīkst pazaudēt? Vai kā?

Link to comment
Share on other sites

precizi katram tam $masivs[$i] $i vertiba ir cipars kas ir vitali svariga cikla pareizai izpildei, bet kartoshanu reali vajag pec ta otra masiva pedejas vertibas

 

-varbut ir iespejams to visu iepust vel kada 3 masiva un tad vnk sarkartot pie izvades ?

 

-attiecigi vilkt ara pa vienai vertibai pec cikla izpildes un tad pust ieksha 3shaja masiva, galvanais ir lai nezud saikne starp $masivs[$i] un ['strings'] vertibam

 

-man tiesham php pagaidam ir uz jus - iespejams ka shis viss izklausas vnk stulbi

Edited by Raiviic
Link to comment
Share on other sites

Tev vienkāršāk būtu taisīt to masīvu šādi:

$masivs2 = array(
array("strings1", 0),
array("strings2", 1),
array("strings3", 2),
);

T.i uztaisīt masīvu no pārīšiem: kārtojamās vērtības, un tavas vitāli svarīgās informācijas - tā integera.

Un tad kārtot pēc katra elementa pirmās vērtības ar to pašu usort funkciju.

Link to comment
Share on other sites

$masivs[$i] $i vertiba ir cipars kas ir vitali svariga cikla pareizai izpildei,

shadi nav labi dariit , jo kadreiz vari nonak situacija kad pietruuks RAM , megjinashu paskaidrot kapec ...

$masivs[0], $masivs[100] --> idejiski ir 2 vienibas RAM ?

Ta tikai sakumaa liekas , faktiski ir 101 vienibas , tas ir Standarta masivu gadijuma Tapat Atminja tiks izveidots masiva apgabals kurs buus preciizi ( Lielaka masiva vertiba+1 ) liels .. Ipashi labi sho ideju var redzet JS (paskatoties ar FF adinu FireBug)

<script type="text/javascript">
var mycars = new Array();
mycars[0] = "Saab";
mycars[1] = "Volvo";
mycars[2] = "BMW";
mycars[20000] = "ccc";
for (i=0;i<mycars.length;i++)
{
document.write(mycars[i] + "<br />");
}
</script>

palaid sito un redzeesi Cik masiva elementu tiks izveidots ... Tas pats notiek ar PHP , tikai PHP automatiski vinjus nodefinees, JS pakliegs ka elements nav definets

---

Tapec tomer labak darii kaa buubu ieteica .. I vieglak izmantot gan drosak , gan atrak (arii pei datu sortesanas tiks izveidots tas pilnais masiivs ...

Ja galiigi nevar no ta izvairiities (izmantot Indeksa skaitli), tad parvert to kaa Asocitiivo masivu, pieliekot prieksaa kadu Simbolu & ieliekot pedinjas ...

piem $masivs[123456789] => $masivs['A123456789'] jebkuraa bridii sameraa vienkarshi varesi dabuut atpakalj 123456789 (nonjemot nost 1 simbolu )

----------------

Edit: iespejams ka tas piemers nav parak veiksmiigs, bet nu fakts paliek fakts

Edited by Grey_Wolf
Link to comment
Share on other sites

tulit atkodishu ka man tur vajag un tad zinjoshu kas sanacis, un paldies abiem par informaciju, izmantoshu bubu piemeru

 

-jaa nu viss laikam izdevies bet nu mini prob kura neliek mieru

 

teksts izvadas pec principa

 

1

10

11

2

21

22

3

31

32

 

bet prasas taka logiski lai izvaditos, attiecigi

 

1

2

3

10

11

21

22

31

32

 

attiecigi karto nevis pec visa skaitlja bet pec katra cipara atsevishkji

Edited by Raiviic
Link to comment
Share on other sites

nolohojos - tur $xyz[mainiga vertiba]['strings']; - ['strings'] vertiba bus skaitlji

 

-ar to sort() nav ta, ka strada tikai ja masiva ir tikai skaitlji, man tur ir 2 vertibas masiva gan strings gan skaitlis - jakarto skaitlis un tad strings japiemet klat preti ciparam?

Edited by Raiviic
Link to comment
Share on other sites

×
×
  • Create New...