J'ai besoin d'aide avec un pense que je devrais faire. J'ai deux tableaux avec des URL par exemple:Comparer les tableaux d'urls et supprimer d'un tableau urls dépendent du second tableau
$urls = ['https://test.com/', 'http://example.com/', 'https://google.com/'];
$urlsFromOtherSource = ['https://test.com/', 'https://example.com/', 'https://facebook.com/'];
J'ai besoin de créer trois tableaux d'URL là. Le premier d'entre eux aura des URL communes des deux tableaux. Deux autres seront les mêmes que si dans ce tableau de deux initiales j'ai la même URL mais la différence est seulement dans http - https je dois attribuer cette URL seulement à un tableau.
donc de mon exemple deux tableaux i besoin d'obtenir des tableaux de la manière suivante:
$commonUrls = ['https://test.com/']; //becouse i have only this url in two arrays
$urls = ['http://example.com/', 'https://google.com/']; //'http://example.com/ I leave in this array this url and remove from second table becouse in second array i have the same- difference is only in https
$urlsFromOtherSource = ['https://facebook.com/']; //remove from this array https://example.com/ becouse this url is in first array- difference is only in http
J'ai essayé de penser comment puis-je comparer les tableaux et attraper la différence de http-https, mais il est pas facile pour moi. Mon apparence de code comme ceci:
$urls = ['https://test.com/', 'http://example.com/', 'https://google.com/'];
$urlsFromOtherSource = ['https://test.com/', 'https://example.com/', 'https://facebook.com/'];
$commonUrls = array_intersect($urls, $urlsFromOtherSource);//here I have common urls from both arrays
$urls = array_diff($urls, $commonUrls);//I remove from this array urls which i have in common array
$urlsFromOtherSource = array_diff($urlsFromOtherSource, $commonUrls);//I remove from this array urls which i have in common array
foreach ($urlsFromOtherSource as $url) {
$landingPageArray[] = preg_replace(["#^http(s)?://#", "#^www\.#"], ["", ""], $url);
}
foreach ($urls as $url) {
$landingPage = preg_replace(["#^http(s)?://#", "#^www\.#"], ["", ""], $url);
if (in_array($landingPage, $landingPageArray)) {
$httpDifference[] = $url;
}
}
//I havent idea how can I remove from $urlsFromOtherSource urls which I have in $urls array and where difference is only in http-https
$urlsFromOtherSource = array_diff($urlsFromOtherSource, $httpDifference);
Tout ce que je besoin est de comparer les tableaux et retirer du deuxième urls de tableau que j'ai en première rangée et la différence entre cette URL est seulement http-HTPPS. Peut-être que quelqu'un peut m'aider à trouver un algorithme pour ça.
MISE À JOUR Je dois retirer aussi de urlsFromOtherSource si j'ai cette URL dans commonUrls:
commonUrls: array(1) {
[0]=>
string(17) "http://www.test.com/"
}
urlsFromOtherSource: array(1) {
[2]=>
string(21) "http://test.com/"
}
donc je dois retirer de urlsFromOtherSource cette URL. Et faire ce code comparer automatiquement que la page d'atterrissage quoi que ce soit http://www ou www ou seulement http: // Je besoin compare pas cela dans mes tableaux
Commander 'array_diff()' http://php.net/manual/en/function.array-diff.php – Calimero
salut Je sais que cette fonction mais cela ne Aidez moi. J'ai besoin d'un algorithme qui peut me permettre de comparer des URL similaires ou de supprimer des URL similaires à partir d'un tableau Je pense que vous n'avez pas lu tous mes messages parce que ces URL ne sont pas les mêmes je dois vérifier http-https status – johnyT
J'espère que cela aide: '$ commonUrls = array_intersect ($ urls, $ urlsFromOtherSource); $ urls = array_diff ($ urls, $ commonUrls); $ urlsFromOtherSource = array_diff ($ urlsFromOtherSource, $ commonUrls); $ urlsFromOtherSource = array_diff ($ urlsFromOtherSource, $ urls) ' – Memristor