Multidimensionale array verhogen en verlagen met 1
Ik heb me ook maar eens geregistreerd hier, omdat ik er gewoon niet meer uitkom. Ben al een paar dagen op internet aan het zoeken, maar wat ik zoek, staat er niet bepaald. Misschien is het wel te gemakkelijk.. Haha, maar mijn probleem.
Ik heb een array:
Array ( [0] => Array ( [id] => 1 [naam] => naam1 ) [1] => Array ( [id] => 2 [naam] => naam2 ) [2] => Array ( [id] => 3 [naam] => naam3 ) )
output:
1 -> naam1
2 -> naam2
3 -> naam3
Nu wil ik dat ik de plaatsen kan veranderen. bijv:
2 -> naam2
1 -> naam1
3 -> naam3
Ik moet dus kunnen verhogen of verlagen met 1. Nu heb ik het geprobeerd met array_search, maar dat wil me niet lukken.
Kunnen jullie misschien uitleggen hoe ik dit kan aanpakken?
Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Giel
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
function swapElements($element1, $element2) {
$temp = $array[$element1];
$array[$element1] = $array[$element2];
$array[$element2] = $temp;
}
?>
function swapElements($element1, $element2) {
$temp = $array[$element1];
$array[$element1] = $array[$element2];
$array[$element2] = $temp;
}
?>
Je geeft de functie de twee indexen mee die je omgedraaid wilt hebben, dus in jouw voorbeeld zou je dan dit doen:
Gewijzigd op 01/01/1970 01:00:00 door Marco
Je idee is zo verkeerd nog niet, maar ik weet niet hoe ik hem verder moet uitwerken. Want hij doet het nog niet.
Wat heb je precies geprobeert?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
$array = array(
0 => array(
'id' => 1,
'naam' => 'naam1'
),
1 => array(
'id' => 2,
'naam' => 'naam2'
),
2 => array(
'id' => 3,
'naam' => 'naam3'
),
3 => array(
'id' => 4,
'naam' => 'naam4'
),
4 => array(
'id' => 5,
'naam' => 'naam5'
),
5 => array(
'id' => 6,
'naam' => 'naam6'
)
);
function swapElements($element1, $element2) {
$temp = $array[$element1];
$array[$element1] = $array[$element2];
$array[$element2] = $temp;
}
swapElements(0, 1);
echo '<pre>' . print_r( $array, true ) . '</pre>';
0 => array(
'id' => 1,
'naam' => 'naam1'
),
1 => array(
'id' => 2,
'naam' => 'naam2'
),
2 => array(
'id' => 3,
'naam' => 'naam3'
),
3 => array(
'id' => 4,
'naam' => 'naam4'
),
4 => array(
'id' => 5,
'naam' => 'naam5'
),
5 => array(
'id' => 6,
'naam' => 'naam6'
)
);
function swapElements($element1, $element2) {
$temp = $array[$element1];
$array[$element1] = $array[$element2];
$array[$element2] = $temp;
}
swapElements(0, 1);
echo '<pre>' . print_r( $array, true ) . '</pre>';
:)
Je zou de array op de volgende manier mee kunnen geven:
Als je nu op de eerste klikt, zet hij hem eronder op -1. Dat moet dus niet kunnen. Hoe zou je dat tegen moeten gaan?
eehrm, klikken? heb je een linkje? :-)
ik heb op beeld staan.
naam1 (omhoog)(omlaag)
naam2 (omhoog)(omlaag)
naam3 (omhoog)(omlaag)
Simpel gezegd dan als je op omhoog klikt ga je naar omhoog.php?id= .. key ..
dan voert hij het script uit, maar als je nu op naam 1 klikt en dan omhoog dan gaat het fout.
Dus er moet een 'beveiliging' opkomen dat je niet bij 1 op omhoog kan klikken, en bij de laatste niet op omlaag.
Heb geen link, werk lokaal. Maar hoop dat je het nu een beetje snapt! :)
bijvoorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
$aantal = count($_SESSION['boekje']);
for ($row = 0; $row < $aantal; $row++)
{
for ($col = 0; $col < 1; $col++)
{
$id = $_SESSION['boekje'][$row]['id'];
$naam = $_SESSION['boekje'][$row]['naam'];
echo "<a href='../index.php?p=recept&id=$id'>".$_SESSION['boekje'][$row]['naam']."</a>  <a href='verwijderen.php?id=$row&naam=$naam'>verwijder</a>  <a href='omhoog.php?id=$row'>Omhoog</a>  <a href='omlaag.php?id=$row'>Omlaag</a><br />";
}
}
for ($row = 0; $row < $aantal; $row++)
{
for ($col = 0; $col < 1; $col++)
{
$id = $_SESSION['boekje'][$row]['id'];
$naam = $_SESSION['boekje'][$row]['naam'];
echo "<a href='../index.php?p=recept&id=$id'>".$_SESSION['boekje'][$row]['naam']."</a>  <a href='verwijderen.php?id=$row&naam=$naam'>verwijder</a>  <a href='omhoog.php?id=$row'>Omhoog</a>  <a href='omlaag.php?id=$row'>Omlaag</a><br />";
}
}
Zal ik het dan anders moeten doen? Kom er even helemaal niet meer uit.