код вашего кода должен сказать $daysAux[$k] =
вместо $daysAux[$key] =
, потому что в противном случае, когда $key
равен false
, он просто перезапишет ту же запись вместо создания новой
также необходимо поменять местами days
и daysOfWeek
в цикле.
#default array
$daysOfWeek = array('M','T','W','TH','F');
#your array
$days = array('T','W','TH','','');
#create a new array with key association property
$daysAux = array();
foreach($days as $k=>$v) {
$key = array_search($v, $daysOfWeek);
if($key !== FALSE) {
$daysAux[$key] = $v;
}
else
$daysAux[$key] = '';
}
# array before sort
echo '<pre/>';print_r($daysAux);
ksort($daysAux);
$days = $daysAux;
#final result
echo '<pre/>';print_r($days);