배열 값의 길이로 배열을 정렬 하시겠습니까?
Author : 치치     Date :  2019-10-09 18:39:57   Views : 6회  

나는 아나그램 머신을 만들었고 나는 긍정적 인 성냥을 가지고 있습니다. 문제는 그것들이 모두 다른 순서로 배열되어 있기 때문에 가장 긴 배열 값이 먼저 나올 수 있도록 배열을 정렬 할 수 있기를 원합니다.

 

아무도이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

우수 답변

http://us2.php.net/manual/en/function.usort.php 사용

 

이 사용자 지정 함수 사용

 

function sort($a,$b){
    return strlen($b)-strlen($a);
}

usort($array,'sort');

이전 색인을 유지하려면 uasort를 사용하고, 상관하지 않으면 usort를 사용하십시오.

또한, usort가 불안정한 정렬이기 때문에 내 버전이 더 좋습니다.

 

$array = array("bbbbb", "dog", "cat", "aaa", "aaaa");
// mine
[0] => bbbbb
[1] => aaaa
[2] => aaa
[3] => cat
[4] => dog

// others
[0] => bbbbb
[1] => aaaa
[2] => dog
[3] => aaa
[4] => cat

 

 

2차원 배열 소트

<?php
function cmp($a, $b)
{
    return strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits, "cmp");

while (list($key, $value) = each($fruits)) {
    echo "$fruits[$key]: " . $value["fruit"] . "n";
}
?>

 

치치(1 month ago)
function cmp($a, $b)
{
	return strlen($b["url"])-strlen($a["url"]);	//긴 문자열 우선
	// return strlen($a["url"])-strlen($b["url"]);	//짧은 문자열 우선
	// return strcmp($a["url"], $b["url"]); 
}

 





❌Delete 🛠Modify 🐣Reply 📄List
No Subject
Author Date Like Views