<?php
// Selection Sort in PHP
$arr = array(64, 25, 12, 22, 11);
var_export(selection_sort($arr));
function selection_sort($arr) {
$len = count($arr);
for($i = 0; $i < $len; $i++) {
$min = $i;
for($j = $i + 1; $j < $len; $j++) {
if($arr[$j] < $arr[$min]) {
$min = $j;
}
swap($min, $i, $arr);
}
}
return $arr;
}
// pass by reference
function swap($i, $j, &$arr) {
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $arr[$tmp];
}
?>
I get this error
PHP Notice: Undefined offset: 25 in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined offset: 25 in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 PHP Notice: Undefined offset: 12 in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined offset: 12 in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 PHP Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 PHP Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 PHP Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 PHP Notice: Undefined offset: 22 in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined offset: 22 in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 PHP Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 PHP Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 PHP Notice: Undefined offset: 11 in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined offset: 11 in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 PHP Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23
Notice: Undefined index: in /private/var/folders/83/98g8707d0f364z7m1pm76vlh0000gr/T/CodeRunner/Untitled 3.php on line 23 NULL
EDIT: NM got it By mistake I was using $tmp as index of an array instead of a value.
<?php
// Selection Sort in PHP
$arr = array(64, 25, 12, 22, 11);
var_export(selection_sort($arr));
function selection_sort($arr) {
$len = count($arr);
for($i = 0; $i < $len; $i++) {
$min = $i;
for($j = $i + 1; $j < $len; $j++) {
if($arr[$j] < $arr[$min]) {
$min = $j;
}
swap($min, $i, $arr);
}
}
}
// pass by reference
function swap($i, $j, &$arr) {
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $tmp;
}
?>
change $arr[$tmp]
to $tmp
as $tmp has been the value while not the key.