[php] waarde vooraan in array plaatsen

Pagina: 1
Acties:
  • 110 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
is er een mogelijkheid en zoja welke om aan een reeds bestaande array, welke opgeslagen is in een sessie, om aan deze array vooraan een entrie erbij te geven...
dus:
array = 1,2,3,4,5
nieuwe array = 6,1,2,3,4,5

[ Voor 4% gewijzigd door hobbeldebobbel op 28-06-2005 15:28 ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:45
Ja,
array size vergroten, alle elementen een positie opschuiven, en dan heb je een vrije eerste positie.
Logisch toch?

Maar waarom wil je dat doen ?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

array_merge?
whoami schreef op dinsdag 28 juni 2005 @ 15:28:
Ja,
array size vergroten, alle elementen een positie opschuiven, en dan heb je een vrije eerste positie.
Logisch toch?
Het is PHP, dat hoeft niet zo lastig. :+

[ Voor 81% gewijzigd door NMe op 28-06-2005 15:31 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
hmm dat dacht ik dus ook dat het wel met een omweg kon... had gehoopt dat er een functie voor was.. vandaar dat ik hem niet vond...

ik wil namelijk dat in die array bepaald foutmeldingen opgeslagen worden, met de nieuwste boven aan.... misschien moet ik nu maar gewoon de array opvullen en dan achterste voren uitlezen... :) is waarschijnlijk makkelijker dan dat logische van array vergroten


//edit:

kijk merge... aha

[ Voor 5% gewijzigd door hobbeldebobbel op 28-06-2005 15:32 . Reden: post veranderd door -nme- ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Met array_unshift kun je dat handig doen:

array_unshift() example:
PHP:
1
2
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");

This would result in $queue having the following elements:
code:
1
2
3
4
5
6
7
Array
(
   [0] => apple
   [1] => raspberry
   [2] => orange
   [3] => banana
)


Easy does it. ;)

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

hobbeldebobbel schreef op dinsdag 28 juni 2005 @ 15:30:
hmm dat dacht ik dus ook dat het wel met een omweg kon... had gehoopt dat er een functie voor was.. vandaar dat ik hem niet vond...
Wel dus. :P
PHP:
1
2
3
$arr = array(1, 2, 3, 4, 5);
$arr = array_merge(array(6), $arr);
print_r($arr);
ik wil namelijk dat in die array bepaald foutmeldingen opgeslagen worden, met de nieuwste boven aan.... misschien moet ik nu maar gewoon de array opvullen en dan achterste voren uitlezen... :) is waarschijnlijk makkelijker dan dat logische van array vergroten
Dat lijkt me inderdaad een beter/makkelijker plan eerlijk gezegd. Scheelt wat rekentijd. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

met de functie array_push() zou het wel moeten lukken.

edit: dan doe je eerst array_flip en dan array_push en weer weer terug flippen

[ Voor 48% gewijzigd door aex351 op 28-06-2005 16:27 ]

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
aex351 schreef op dinsdag 28 juni 2005 @ 16:24:
met de functie array_push() zou het wel moeten lukken.

edit: dan doe je eerst array_flip en dan array_push en weer weer terug flippen
Waarom zou je de array omdraaien dan 1 plek opschuiven en weer terugdraaien als je ook in 1 keer iets achteraan een array kan zetten 8)7

Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

hij wilt het toch vooraan, niet achteraan.

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

Verwijderd

heb je niet, zoals in een echte programmeertaal, een linked list zodat je zonder 'nodeloos' geshift en gemerge een item vooraan in de lijst kan pleuren...

Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
aex351 schreef op dinsdag 28 juni 2005 @ 16:36:
hij wilt het toch vooraan, niet achteraan.
Hij heeft al gezegd dat hij heeft ingezien dat hij het beter gewoon achteraan kan zetten en daarna flippen als hij het gaat uitlezen :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op dinsdag 28 juni 2005 @ 16:41:
heb je niet, zoals in een echte programmeertaal, een linked list zodat je zonder 'nodeloos' geshift en gemerge een item vooraan in de lijst kan pleuren...
Die zit er AFAIK standaard niet in, misschien in PEAR, dat weet ik niet. Overigens is het natuurlijk geen enkele moeite om zelf iets dergelijks te maken. Trouwens, die uithaal naar PHP waarin je impliceert dat PHP geen "echte programmeertaal" zou zijn lijkt me ook een beetje overbodig, niet? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Wat zou er sneller zijn dan, meteen vooraan zetten door array_unshift te gebruiken, of flippen om de laatste waarde vooraan te krijgen? :)

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Superdeboer schreef op dinsdag 28 juni 2005 @ 16:52:
Wat zou er sneller zijn dan, meteen vooraan zetten door array_unshift te gebruiken, of flippen om de laatste waarde vooraan te krijgen? :)
Het spul achteraan zetten en in omgekeerde volgorde werken. :+

Ik kende unshift nog niet, weer wat geleerd. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Obliterator
  • Registratie: November 2000
  • Laatst online: 19-09 14:48
Probeer het en je weet het... Maar ik gok op de unshift.
Maar gewoon achteraan zetten en dan de laatste lezen lijkt me makkelijker. Zoals al gezegd array_push() en array_pop().
array_push() treats array as a stack, and pushes the passed variables onto the end of array. The length of array increases by the number of variables pushed.

Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
gezien de grote hoeveelheden data... uhum niet dus.. lijkt me het prestatie verschil tussen het gebruik van de merge, unshift danwel flip manier nihil :) aangezien ik eenluie hond ben en wat misschien nog wel belangrijker is... ik heb nu voor het uitlezen van drie arrays hetzelfde bestand gebruikt... die moet ik dan aanpassen... en dat kost natuurlijk ook weer tijd en rekenkracht.. nu is het gewoon 1 bestand :)

hebhet nu opgelost met de methode van -NMe- dus de array mergen

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

Verwijderd

Als je array_merge() gebruikt worden wel weer je keys opnieuw gezet.
Zelf gebruik ik deze:
PHP:
1
$arr = array(6) + array(1,2,3,4,5);

Acties:
  • 0 Henk 'm!

  • Xenon
  • Registratie: Januari 2001
  • Laatst online: 21-08 09:12
Kan je dan niet makkelijker gewoon de laaste waarde opvragen met

PHP:
1
echo $arr[count($arr)-1];

[ Voor 3% gewijzigd door Xenon op 28-06-2005 22:23 ]

ProtocoLAN.be: De beste LAN van de Maaskant


Acties:
  • 0 Henk 'm!

  • Huppie
  • Registratie: Mei 2003
  • Laatst online: 02-09 09:59
Xenon schreef op dinsdag 28 juni 2005 @ 22:23:
Kan je dan niet makkelijker gewoon de laaste waarde opvragen met

PHP:
1
echo $arr[count($arr)-1];
De TS wil iets erbij zetten, niet uitlezen ;)
edit:
En dan ook nog eens helemaal vooraan de array, niet achteraan :X

* Huppie voegt nog even toe dat ie zelf altijd array_unshift() gebruikt voor degelijke dingen.
Dit omdat deze ook in JS beschikbaar zijn (waar ik ze ook van ken :P) en omdat het imho de 'juiste' manier is (maar dat is misschien omdat ik het zo geleerd heb :+).

[ Voor 10% gewijzigd door Huppie op 28-06-2005 22:29 ]

Proud member of TCF - D2OL is zooooo 2005


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Huppie schreef op dinsdag 28 juni 2005 @ 22:27:
De TS wil iets erbij zetten, niet uitlezen ;)
edit:
En dan ook nog eens helemaal vooraan de array, niet achteraan :X
Ik denk dat Xenon bedoelt dat het makkelijker is om de bewerkingen achteraan te doen...en dat is het ook. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Huppie
  • Registratie: Mei 2003
  • Laatst online: 02-09 09:59
-NMe- schreef op dinsdag 28 juni 2005 @ 22:34:
[...]

Ik denk dat Xenon bedoelt dat het makkelijker is om de bewerkingen achteraan te doen...en dat is het ook. ;)
Maar dan zit Xenon toch alsnog te lezen in plaats van te schrijven? :X
edit:
Of zie ik het gewoon helemaal verkeerd?


* Huppie mompelt array_push(); ;)

[ Voor 10% gewijzigd door Huppie op 28-06-2005 22:37 ]

Proud member of TCF - D2OL is zooooo 2005


Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Huppie schreef op dinsdag 28 juni 2005 @ 22:36:
Maar dan zit Xenon toch alsnog te lezen in plaats van te schrijven? :X
* Huppie mompelt array_push(); ;)
Ja, maar dat wil de TS ook? Hij wil gewoon de laatst toegevoegde value ophalen; de value die aan de hoogste key verbonden is. Dus idd de value die bij 'totaal aantal keys minus 1' hoort. :)

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

  • Huppie
  • Registratie: Mei 2003
  • Laatst online: 02-09 09:59
Superdeboer schreef op dinsdag 28 juni 2005 @ 22:38:
[...]

Ja, maar dat wil de TS ook? Hij wil gewoon de laatst toegevoegde value ophalen; de value die aan de hoogste key verbonden is. Dus idd de value die bij 'totaal aantal keys minus 1' hoort. :)
* Huppie krijgt het idee dat ie gek is...nee toch? :?
hobbeldebobbel schreef op dinsdag 28 juni 2005 @ 15:27:
is er een mogelijkheid en zoja welke om aan een reeds bestaande array, welke opgeslagen is in een sessie, om aan deze array vooraan een entrie erbij te geven...
Dus vooraan de array, 1 entry erbij.... dat is dus array_unshift
array_unshift

(PHP 4 , PHP 5)
array_unshift -- Voeg een of meer elementen toe aan het begin van een array

Proud member of TCF - D2OL is zooooo 2005


Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
je kan het op twee manieren opvatten.. of vooraf of achteraf...
vooraf:
gewoon het ding erbij schrijven aan de voorkant en dan uitlezen zoals je altijd een array uitleest..

achteraf:
het ding toevoegen met array_push en dan achterstevoren uitlezen...

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

  • Xenon
  • Registratie: Januari 2001
  • Laatst online: 21-08 09:12
Huppie schreef op dinsdag 28 juni 2005 @ 22:36:
[...]
Maar dan zit Xenon toch alsnog te lezen in plaats van te schrijven? :X
edit:
Of zie ik het gewoon helemaal verkeerd?


* Huppie mompelt array_push(); ;)
jah, achteraan uitlezen is toch best

en dan achteraan toevoegen via bvb

PHP:
1
2
$arr = array("a","b","c");
$arr[] = "d";

ProtocoLAN.be: De beste LAN van de Maaskant

Pagina: 1