2017-05-01 9 views
0

데이터베이스에 평일 배열 (독일어)이 있습니다. 사전 순으로 정렬하지 않고 주 단위로 정렬 할 수 있습니까?PHP 배열의 값을 다른 배열의 값으로 정렬합니다.

$days = array(
    'Mo', 
    'Di', 
    'Fr', 
    'Sa' 
) 

이 나를 위해 작동하지 않았다 :

$daysSorted = array_merge(array_flip($daysOfWeek), $days); 

편집 :

위의 결과가되도록

$daysOfWeek = array('Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'); 
//example values here: 
$days = array('Sa', 'Di', 'Mo', 'Fr'); 

은 어떻게 $days 배열을 정렬 할 수 있습니다 배열은 다음과 같습니다.

$daysOfWeek = array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'); 
//example values here: 
$days = array('Sat', 'Tue', 'Mon', 'Fri'); 

$days = array(
    'Mon', 
    'Tue', 
    'Fri', 
    'Sat' 
) 

답변

0

array_intersect 바로 가기는 영리한 접근 방식입니다. 나는 그것을 좋아한다. 내 solotion 사용자 지정 정렬 기능을 사용합니다. 선택 사항

<?php 
$daysOfWeek = array('Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'); 
$daysOfWeek = array_flip($daysOfWeek); 
//example values here: 
$days = array('Sa', 'Di', 'Mo', 'Fr'); 
usort($days, function($a, $b) use ($daysOfWeek) 
{ 
    if ($daysOfWeek[$a] === $daysOfWeek[$b]) return 0; 
    else if ($daysOfWeek[$a] < $daysOfWeek[$b]) return -1; 
    else return 1; 
}); 
var_dump($days); 
관련 문제