답변 3개 / 댓글 6개
채택된 답변
+20 포인트
swallow
2년 전
Copy
$array = array("[100] 사과" => 2, "[1] 바나나" => 3, "[200] 딸기" => 1, "[150] 오렌지" => 4);
$keys = array_keys($array);
//sort($keys);
asort($keys, SORT_STRING | SORT_FLAG_CASE | SORT_NATURAL);
$result = array_combine($keys, array_values($array));
var_dump($result);
이렇게 해보세요.
답변에 대한 댓글 2개
swallow
2년 전
2년 전
$fruits = array("[100] 사과" , "[1] 바나나" , "[200] 딸기" , "[150] 오렌지");
sort($fruits);
print_r($fruits);
위 배열이 잘못되었네요
이 내용입니다.
답변에 대한 댓글 1개
2년 전
[code]
$fruits = array("[100] Apples", "[1] Bananas", "[200] Strawberries", "[150] Oranges");
usort($fruits, function($a, $b) {
preg_match('/\[(\d+)\]/', $a, $matchesA);
preg_match('/\[(\d+)\]/', $b, $matchesB);
$numberA = isset($matchesA[1]) ? $matchesA[1] : 0;
$numberB = isset($matchesB[1]) ? $matchesB[1] : 0;
return $numberA - $numberB;
});
print_r2($fruits);
[/code]
$fruits = array("[100] Apples", "[1] Bananas", "[200] Strawberries", "[150] Oranges");
usort($fruits, function($a, $b) {
preg_match('/\[(\d+)\]/', $a, $matchesA);
preg_match('/\[(\d+)\]/', $b, $matchesB);
$numberA = isset($matchesA[1]) ? $matchesA[1] : 0;
$numberB = isset($matchesB[1]) ? $matchesB[1] : 0;
return $numberA - $numberB;
});
print_r2($fruits);
[/code]
2년 전
Copy
$fruits = array("[100] Apples" => 2, "[1] Bananas" => 3, "[200] Strawberries" => 1, "[150] Oranges" => 4);
ksort($fruits);
print_r($fruits);
답변에 대한 댓글 3개
2년 전
안녕하세요.
실행시키면
Array ( [[100] Apples] => 2 [[150] Oranges] => 4 [[1] Bananas] => 3 [[200] Strawberries] => 1 )
[100] Apples
[1] Bananas
[200] Strawberries
[150] Oranges
이런순으로 나옵니다.
실행시키면
Array ( [[100] Apples] => 2 [[150] Oranges] => 4 [[1] Bananas] => 3 [[200] Strawberries] => 1 )
[100] Apples
[1] Bananas
[200] Strawberries
[150] Oranges
이런순으로 나옵니다.
2년 전
[code]
$fruits = array("[100] Apples" => 2, "[1] Bananas" => 3, "[200] Strawberries" => 1, "[150] Oranges" => 4);
uksort($fruits, function($a, $b) {
preg_match('/\[(\d+)\]/', $a, $matchesA);
preg_match('/\[(\d+)\]/', $b, $matchesB);
$numberA = isset($matchesA[1]) ? $matchesA[1] : 0;
$numberB = isset($matchesB[1]) ? $matchesB[1] : 0;
return $numberA - $numberB;
});
print_r($fruits);
[/code]
$fruits = array("[100] Apples" => 2, "[1] Bananas" => 3, "[200] Strawberries" => 1, "[150] Oranges" => 4);
uksort($fruits, function($a, $b) {
preg_match('/\[(\d+)\]/', $a, $matchesA);
preg_match('/\[(\d+)\]/', $b, $matchesB);
$numberA = isset($matchesA[1]) ? $matchesA[1] : 0;
$numberB = isset($matchesB[1]) ? $matchesB[1] : 0;
return $numberA - $numberB;
});
print_r($fruits);
[/code]
2년 전
안녕하세요.
배열 내용이 잘못되었네요
아래 내용으로 넣어서 테스트 해보시면 sort가 안되네요.
$fruits = array("[100] Apples", "[1] Bananas", "[200] Strawberries", "[150] Oranges");
배열 내용이 잘못되었네요
아래 내용으로 넣어서 테스트 해보시면 sort가 안되네요.
$fruits = array("[100] Apples", "[1] Bananas", "[200] Strawberries", "[150] Oranges");
답변을 작성하려면 로그인이 필요합니다.
$fruits = array("[100] 사과" , "[1] 바나나" , "[200] 딸기" , "[150] 오렌지"); 이라면
asort($fruits , SORT_STRING | SORT_FLAG_CASE | SORT_NATURAL);
var_dump($fruits);
아마 잘 될겁니다.