У меня есть два массива: один с большим набором URL-адресов, а другой с идентификаторами поиска. Каждый из URL-путей имеет один уникальный идентификатор. По идентификатору поиска нам нужно найти самый длинный URL с уникальным идентификатором. Вот мой код, я объясню немного позже.Найти наибольшее значение массива из заданного поиска.
<?php
function searchstring($search, $array) {
foreach($array as $key => $value) {
if (stristr($value, $search)) {
echo $value;
}
}
return false;
}
$array = array(
"D:\winwamp\www\info\961507\Good_Luck_Charlie",
"D:\winwamp\www\info\961507\Good_Luck_Charlie\season_1",
"D:\winwamp\www\info\961507\Good_Luck_Charlie\season_1\episode_3",
"D:\winwamp\www\info\961507\Good_Luck_Charlie\season_1\episode_3\The_Curious_Case_of_Mr._Dabney",
"D:\winwamp\www\info\961506\Good_Luck_Charl",
"D:\winwamp\www\info\961506\Good_Luck_Charlie\season_1",
"D:\winwamp\www\info\961506\Good_Luck_Charlie\season_1\episode_1",
"D:\winwamp\www\info\961506\Good_Luck_Charlie\season_1\episode_1\Study_Date");
$searchValues = array("961507","961506");
foreach($searchValues as $searchValue) {
$result = searchstring($searchValue, $array);
}
?>
Это дает значение всех совпадающих идентификаторов. Теперь, если вы видите мой массив, есть четыре набора URL-путей. То, что я хочу, что если я ищу с «961507» он должен дать:
"D:\winwamp\www\info\961507\Good_Luck_Charlie\season_1\episode_3\The_Curious_Case_of_Mr._Dabney"
Если я искать с «961506», он должен дать:
"D:\winwamp\www\info\961506\Good_Luck_Charlie\season_1\episode_1\Study_Date"
Теперь то, что я получаю это все массивы, которые совпадали с моим идентификатором. Не могли бы вы помочь мне узнать, как я могу это сделать? Потому что у меня есть более 98000 URL-адресов для сортировки.
"все массивы" или "всех элементов массива"? Потому что я вижу только один массив $ $ – crush
. Это хорошее место для использования [usort] (http://php.net/manual/en/function.usort.php), и вы можете добавить свои правила в обратный вызов – Ibu