php 특정 value 값으로 sort 하기

devkhun·2020년 2월 24일
0

PHP 나만의 꿀

목록 보기
1/2
## 배열 형태
array(21) {
  [0]=>
  array(8) {
    ["metaValue"]=>
    string(7) "250_250"
    ["metaValue1"]=>
    string(3) "250"
    ["metaValue2"]=>
    string(3) "250"
  }
  [1]=>
  array(8) {
    ["metaValue"]=>
    string(6) "728_90"
    ["metaValue1"]=>
    string(3) "728"
    ["metaValue2"]=>
    string(2) "90"
  }
}

## 사용자 함수 이용해서 정렬하기
$frameSize = array();
foreach (element('size', element('contents', $result)) as $key => $value) {
	$exp_metaValue = explode("_", $value['metaValue']);
    $value['metaValue1'] = element('0', $exp_metaValue);
    $value['metaValue2'] = element('1', $exp_metaValue);
    $frameSize[] = $value;
}

usort($frameSize, function ($a, $b) {
	if ($a['metaValue1'] > $b['metaValue1']) {
		return 1; // 내림차순
	} else if ($a['metaValue1'] == $b['metaValue1']) {
		return ($a['metaValue2'] > $b['metaValue2']) ? 1 : -1;
	} else {
		return -1; // 올림차순
	}
});
profile
가늘고 길게 간다

0개의 댓글