Gå til innhold

array_shift i nested array


Anbefalte innlegg

Skrevet

Trenger å bruke funksjonen (eller tilsvarende) array_shift på nivå 2 i ett nested array. Jeg kan selvfølgelig hente ut arrayet over i en variabel, så kjøre array_shift på det arrayet, får så å legge det tilbake i det andre arrayet, men det virker unødvendig! Noen som har noen forslag her?

Videoannonse
Annonse
Skrevet
Trenger å bruke funksjonen (eller tilsvarende) array_shift på nivå 2 i ett nested array. Jeg kan selvfølgelig hente ut arrayet over i en variabel, så kjøre array_shift på det arrayet, får så å legge det tilbake i det andre arrayet, men det virker unødvendig! Noen som har noen forslag her?

Du trenger ikke legge det tilbake?

 

$a = array(
'a' => '1',
'b' => array(
'c' => '2',
'b' => '2',
'a' => '2',
),
);

echo "org \n";
print_r($a);
$temp = array_shift($a['b']);
echo "shifted value is $temp\n";
echo "shifted \n";
print_r($a);

Skrevet
array_shift($var[$index]);

?

Får det ikke til å funke! Virker som den kjører array_shift på hoved arrayet!

Skrevet (endret)
array_shift($var[$index]);

?

Får det ikke til å funke! Virker som den kjører array_shift på hoved arrayet!

Vel, hos meg ser det ut til å fungere.

$var = array(array('test11', 'test12','test13'),array('test21','test22','test23'),array('test31','test32', 'test33'));
var_dump(array_shift($var[1]));
var_dump($var);

gir akkurat det man forventer

string(6) "test21"
array(3) {
 [0]=>
 array(3) {
[0]=>
string(6) "test11"
[1]=>
string(6) "test12"
[2]=>
string(6) "test13"
 }
 [1]=>
 array(2) {
[0]=>
string(6) "test22"
[1]=>
string(6) "test23"
 }
 [2]=>
 array(3) {
[0]=>
string(6) "test31"
[1]=>
string(6) "test32"
[2]=>
string(6) "test33"
 }
}

Endret av Ernie
Skrevet (endret)

Sorry.. det er jeg som blander her! Jeg mente "array_push"! jeg skal legge noe i bunnen av arrayet, ikke på toppen som man gjør med $var[] = 'bla'!

array_push($temps[$array_nr],$avrut[0]);

Virker som den pusher det inn i første arrayet..

Endret av WiRRE
Skrevet (endret)
Sorry.. det er jeg som blander her! Jeg mente "array_push"! jeg skal legge noe i bunnen av arrayet, ikke på toppen som man gjør med $var[] = 'bla'!

array_push($array, $var);

er lik

$array[] = $var;

 

mener du array_unshift?

 

og igjen, vis koden du har problemer med.

 

EDIT:

der $avrut er et array skal begge disse virke

array_push($temps[$array_nr],$avrut[0]);
$temps[$array_nr][] = $avrut[0];

 

Tror du må vite ka $array_nr og $avrut[0] er.

Endret av OIS
Skrevet (endret)
Sorry.. det er jeg som blander her! Jeg mente "array_push"! jeg skal legge noe i bunnen av arrayet, ikke på toppen som man gjør med $var[] = 'bla'!

array_push($temps[$array_nr],$avrut[0]);

Virker som den pusher det inn i første arrayet..

Det fungerer også som forventet

$var = array(array('test11', 'test12','test13'),array('test21','test22','test23'),array('test31','test32', 'test33'));
array_push($var[1], 'test24');
var_dump($var);

gir

array(3) {
 [0]=>
 array(3) {
[0]=>
string(6) "test11"
[1]=>
string(6) "test12"
[2]=>
string(6) "test13"
 }
 [1]=>
 array(4) {
[0]=>
string(6) "test21"
[1]=>
string(6) "test22"
[2]=>
string(6) "test23"
[3]=>
string(6) "test24"
 }
 [2]=>
 array(3) {
[0]=>
string(6) "test31"
[1]=>
string(6) "test32"
[2]=>
string(6) "test33"
 }
}

 

Red.: Slenger meg på OIS her, tror det er en ide å vise koden du sliter med.

Endret av Ernie
Skrevet

Sorry gutter.. det var jeg som blandet array_push, array_unshift og array_push... etter litt lesing i php manualen fant jeg det ut! Det var array_unshift jeg skulle bruke! Takker for alle inspill som peilet meg inn på problemet! Nå går endelig grafen min riktig vei!

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...