Ik ben bezig met een functie waarbij ik op basis van een waarde 2 dimensionale array wil sorteren. Ik heb al het een en ander geprobeerd maar het gaat mis op een punt wat ik niet begrijp.
$arraykey = (1.1-$language_list)*10;
geeft een nette opeenvolgende lijst met keys waarbij de eerste key 1 is.
$arraykey = (1-$language_list)*10;
geeft een lijst met keys waarbij de eerste key 0 is zoals het hoort maar waarbij de value van key 1 de value van key 0 overschrijft. value van key 2 overschrijft key 1 maar de value van key 3 komt netjes in key 3
Ik snap niet hoe dit kan.
de code is
output
$arraykey = (1.1-$language_list)*10;
geeft een nette opeenvolgende lijst met keys waarbij de eerste key 1 is.
$arraykey = (1-$language_list)*10;
geeft een lijst met keys waarbij de eerste key 0 is zoals het hoort maar waarbij de value van key 1 de value van key 0 overschrijft. value van key 2 overschrijft key 1 maar de value van key 3 komt netjes in key 3
Ik snap niet hoe dit kan.
de code is
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| function testKeys(){ $languages = '0.5,0.4,0.6,0.7,0.8,0.0,0.3,1.0,0.9,0.1,0.2'; $languages = explode( ",", $languages ); $count=0; foreach ( $languages as $language_list ){ $arraykey = (1.1-$language_list)*10; //$arraykey = (1-$language_list)*10; $user_languages[$arraykey] = $count; $count++; } ksort($user_languages); return $user_languages; } |
output
code:
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
| zoals verwacht:(not commented) Array ( [1] => 7 [2] => 8 [3] => 4 [4] => 3 [5] => 2 [6] => 0 [7] => 1 [8] => 6 [9] => 10 [10] => 9 [11] => 5 ) fout:(commented) Array ( [0] => 8 [1] => 4 [3] => 3 [4] => 2 [5] => 0 [6] => 1 [7] => 6 [8] => 10 [9] => 9 [10] => 5 ) |
👑