お世話になります。
php
1//ドメイン 2$domainList = array("sample.jp","sample.co.jp",sample.com"); 3 4//URL sample.co.jp は該当しない 他は2つずつ検知されるようになっている。 5 6$urlList = array("http://sample.jp/aaa.html,sample.jpのサイトタイトル1","http://sample.com/aaa.html,sample.comのサイトタイトル1","http://sample.org/aaa.html,sample.orgのサイトタイトル1","http://sample.jp/bbb.html,sample.jpのサイトタイトル2","sample.com/bbb.html,sample.comのサイトタイトル2");
上記配列で
sample.jp,sample.comのみ2件検知されるような配列となっております。
これを一番初めに検知されたもののみ
URLでカンマ区切りされているURLとサイトタイトルを連想配列(一致しないドメインに関しては該当なし)にして格納したいのですがどのようにすればよろしいでしょうか?
下記が現状のコードになっております・・・
php
1$getInfo = array(); 2for($i=0;$i<=2;$i++) { 3 foreach( $urlList as $key => $url ) { 4 if(preg_match('{'.preg_quote("{$domainList[$i]}").'}i',$url,$match) === 1) { 5 6 //キーワード検索結果の分類 →カンマで句切られているため 7 $explodeUrlList = explode( ',', $url); 8 $getInfo['url'] = $explodeUrlList[0]; 9 $getInfo['title'] = $explodeUrlList[1]; 10 break; 11 } else { 12 $getInfo['url'] = "該当なし"; 13 $getInfo['title'] = "該当なし"; 14 } 15 } 16}
下記のように上書きされてしまっている状態です。
ご教授いただけますと助かります。
php
1var_dump($getInfo); 2array(2) { ["url"]=> string(12) "該当なし" ["title"]=> string(12) "該当なし" } array(2) { ["url"]=> string(12) "該当なし" ["title"]=> string(12) "該当なし" }
また、sample.co.jpは$urlListに格納されていないのですが
その場合
php
1//理想 2$getInfo['url'] =array("http://sample.jp/aaa.html","該当なし","http://sample.com/aaa.html"); 3$getInfo['title'] =array("sample.jpのサイトタイトル1","該当なし",sample.comのサイトタイトル1");
となるようにしたいのですがどうすればいいでしょうか。
重ね重ね申し訳ございません。
ご教授いただけますと助かります。
回答2件
あなたの回答
tips
プレビュー