Я пытаюсь получить наименьшую разницу в значении между предоставленным пользователем значением и элементом массива индекса.
Например, пользователь предоставил 90. Получите разницу между 90 и значением «емкости».
// Output of the $unallocated array variable
array (size=2)
0 =>
object(stdClass)[28]
public 'id' => string '9' (length=1)
public 'name' => string 'ICT LR B' (length=8)
public 'capacity' => string '200' (length=3)
1 =>
object(stdClass)[29]
public 'id' => string '8' (length=1)
public 'name' => string 'ICT LR A' (length=8)
public 'capacity' => string '120' (length=3)
// Code Snippet
$num_stud = $this->input->post('total_student');
foreach ($unallocated as $un)
{
if($num_stud < $un->capacity){
$difference[] = $un->capacity - $num_stud;
$hl[] = $un->id;
}
}
asort($difference);
$arrlength = count($difference);
for($x = 0; $x < $arrlength; $x++) {
$rec[] = array(
'difference' => $difference[$x],
'hall_id' => $hl[$x]
);
}
Сортируйте переменную массива $ разности в порядке возрастания, но я хочу иметь возможность определить, какой элемент имеет эту особую разницу.
// instead of having this
array (size=2)
0 =>
array (size=2)
'difference' => int 100
'hall_id' => string '9' (length=1)
1 =>
array (size=2)
'difference' => int 20
'hall_id' => string '8' (length=1)
// I want to have this. I want it to be sorted in the ascending order of the difference as 20 is less than 100 in the difference
array (size=2)
0 =>
array (size=2)
'difference' => int 20
'hall_id' => string '8' (length=1)
1 =>
array (size=2)
'difference' => int 100
'hall_id' => string '9' (length=1)