404 Posted August 3, 2008 Report Posted August 3, 2008 Cik palasīti manuāļi,nav izdevies atrast tādu iespēju,kā pievienot jaunu elementu masīvam nevis sākumā vai beigās,bet gan vidū. Iespēja pārrakstīt kādu no esošajiem neder-būtu labi atrast veidu pievienot jaunu elementu masīva vidū,un pārindeksēt masīvu par jaunu,lai pēc tam ar implode ierakstītu jauno saturu tekstfailā. Tas vispār ir iespējams,jeb jāmeklē citi varianti?
Grey_Wolf Posted August 3, 2008 Report Posted August 3, 2008 labi atrast veidu pievienot jaunu elementu masīva vidū,un pārindeksēt masīvu par jaunu... ta arii ir atbilde ... uzaini cik elementu masiivaa ar ciklu ieraksti DALJU masiva jaunaa meinigajaa , pievieno vertiibu ko tev vajag un pieraksti klat parejo... $skaits=count($masivs); // teksim 10 ieraksti for($i=0;$i<$skaits; $i++) { $new_mas[]=$masivs[$i] if($i== 5) { $new_mas="katkada vertiba"; } } kautkaa sadi ...
bubu Posted August 3, 2008 Report Posted August 3, 2008 Easy: $masivs = array(...); $jauns_elements = ...; $jaunaa_elementa_indekss = 3; $masivs = array_splice($masivs, 0, jaunaa_elementa_indekss) + array($jauns_elements) + array_splice($masivs, $jaunaa_elementa_indekss); Funkciju uzraksti pats ;)
404 Posted August 4, 2008 Author Report Posted August 4, 2008 Uzrakstīju šādi: // $array - apstradajamais masivs $array1=array_splice($array,0,$indexa_nr); $array1[]=$jauns_elements; $array2=array_splice($array,$indexa_nr); $rezult=array_merge($array1,$array2); Viss strādā,bet tikai ar vienu array_splice.Kamēr tiek izsaukta tikai pirmā vai otrā masīva daļa-viss ok.Bet kā pieslēdz,pimēram otru,tā tas atgriež tukšu array bez rezultāta.Izmēģināju visādi-kamēr viena array_splice vietā ir parasts masīvs,viss kā vajag,bet abi vienlaicīgi negrib strādāt. Tā fukcija kaut kā jāreseto pirms nākamās izmantošanas,vai?
v3rb0 Posted August 4, 2008 Report Posted August 4, 2008 (edited) // print_r(array_insert(array(1,2,3,4,6), 5, 4)); function array_insert($array, $what, $where) { return array_merge( array_slice($array, 0, $where), array($what), array_slice($array, $where) ); } php laikam nedarbojas array(1,2,3) + array(4,5,6) tā kā varētu gribēt. Edited August 4, 2008 by v3rb0
bubu Posted August 4, 2008 Report Posted August 4, 2008 Ah pareiz. + apvienoja masīvu atslēgas, nevis elementus.
404 Posted August 8, 2008 Author Report Posted August 8, 2008 Biju jau atmetis domu par to risinājumu,bet beigās piedabūju šādi strādāt: // $array - apstradajamais masivs $array1=array_splice($array,0,$indexa_nr); $array1[]=$jauns_elements; $poz=count($array)-count($array1); $array2=array_splice($array,$poz); $rezult=array_merge($array1,$array2); Tā arī nepieleca,kapēc tā negāja. Bet paldies tāpat par tiem piemēriem-savādāk vienalga neiedomātos.
Recommended Posts