nokla
@nokla

Как сделать приоритет string?

Попробую объяснить как можно проще, есть обычная переменная с текстом Привет друзья на тостер и код ее разбирает на части вот так
Привет друзья на тостер

array(10) {
  [0]=>
  string(12) "Привет"
  [1]=>
  string(25) "Привет друзья"
  [2]=>
  string(30) "Привет друзья на"
  [3]=>
  string(43) "Привет друзья на тостер"
  [4]=>
  string(12) "друзья"
  [5]=>
  string(17) "друзья на"
  [6]=>
  string(30) "друзья на тостер"
  [7]=>
  string(4) "на"
  [8]=>
  string(17) "на тостер"
  [9]=>
  string(12) "тостер"
}

Нужно чтоб в это переменной которая содержит разбитый текст был приоритет на числу в string(30)
например как вы видите каждое слово имеет свое число в string, есть string(17) а есть string(30)
вот нужно чтобы приоритет был на большем числе, и в конце я мог вывести приоритетные слова, точнее слова которые имеют больше символов или большее число в string(?) .
Но если этих слов не будет, нужно чтоб он выводил менее приоритетные слова.

var_dump($переменная с приоритетом);
Приоритетное число
[3]=>
 string(43) "Привет друзья на тостер"
  • Вопрос задан
  • 2506 просмотров
Пригласить эксперта
Ответы на вопрос 5
hell0w0rd
@hell0w0rd
Просто разработчик
есть функция - php.net/manual/en/function.usort.php. Позволяет отсортировать ровно так, как вам нужно.
Ответ написан
Комментировать
cha-cha
@cha-cha
function _sort($a, $b){
	if(strlen($a) == strlen($b)){
		return 0;
	}
	return (strlen($a) < strlen($b)) ? 1 : -1;
}

usort($arr, "_sort");
Ответ написан
Dimitriys
@Dimitriys
string(30) это длина строковой переменной echo strlen('привет') //5
если чесно не понял что вам надо, попробуйте менее простым языком объяснить :)
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
usort($keyWords, function ($a, $b) {
	return strlen($b)-strlen($a);
});

ideone.com/KFBjoF - функции и т.д. кликабельны. Подробнее в мануале. Мы просто сортируем массив по длине строки.
Ответ написан
nokla
@nokla Автор вопроса
@cha-cha @Fesor @Dimitriys
Тут еще в этой сортировки минус есть нужно чтоб он вывел полный список текста переменной $_POST['0'] в отсортированном виде
например может быть так:
Привет друзья на тостер

array(10) {
  [0]=>
  string(43) "Привет друзья на тостер" // этого не будет и выдаст другой
  [1]=>
  string(30) "друзья на тостер" // выдаст этот, а тут нету слова привет
  [2]=>
  string(30) "Привет друзья на"
  [3]=>
  string(25) "Привет друзья"
  [4]=>
  string(17) "друзья на"
  [5]=>
  string(17) "на тостер"
  [6]=>
  string(12) "тостер"
  [7]=>
  string(12) "друзья"
  [8]=>
  string(12) "Привет" // нужно чтоб он добавил это слово
  [9]=>
  string(4) "на"
}

все остальные слова он должен отсеять иначе будет так
ПриветПривет друзьяПривет друзья наПривет друзья на тостердрузьядрузья надрузья на тостернана тостертостер
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы