2013-05-12 59 views
0

我正在一個WordPress網站上工作,客戶已經將數千張照片上傳到Flickr,現在我希望將它們全部移回到WordPress,並將它們與適當的帖子相關聯。根據值的一部分創建一個唯一的PHP數組?

即使有數千張圖片,確實只有大約50個獨特的圖像,所有其他版本相同的圖像,但上傳到Flickr上的不同位置或稍有不同的大小或名稱。

在幫助我追蹤所有獨特的圖像,基於像下面這樣的列表,我強調的那部分,我需要拉每個記錄到一個PHP數組中,這個catch是我突出顯示的部分,是我想要確保數組中的所有記錄都是UNIQUE

採取有每個記錄現有的PHP陣列,使只給出一個對字符串值的一部分唯一值數組任何幫助嗎?

這是正則表達式用例嗎?

如果使用正則表達式或類似的,我認爲一個模式可能尋找的是隨後/4485116555_/通過10 digits並隨後進行了_

感激地讓我1步步接近我的目標的任何幫助,這是隻是一大難題。

enter image description here

http://farm5.static.flickr.com/4042/4485116555_19cc0eaa85.jpg 
http://farm3.static.flickr.com/2703/4485767454_77476dbdd0.jpg 
http://farm5.static.flickr.com/4008/4485116637_ff085b0ab2.jpg 
http://farm5.static.flickr.com/4002/4485766896_af83d349c4.jpg 
http://farm5.static.flickr.com/4037/4485766950_50d5739344.jpg 
http://farm3.static.flickr.com/2785/4485116905_1fa0e2ea6c.jpg 
http://farm5.static.flickr.com/4052/4704387613_77542dac2e.jpg 
http://farm3.static.flickr.com/2734/4485767622_7b04c3bd3e.jpg 
http://farm5.static.flickr.com/4037/4485767292_1a37fe6c57.jpg 
http://farm5.static.flickr.com/4038/4485116955_f9c47672c3.jpg 
http://farm5.static.flickr.com/4051/4485115681_6d7419a00b.jpg 
http://farm3.static.flickr.com/2753/4485116095_30161a56bb.jpg 
http://farm5.static.flickr.com/4123/4831194968_3977dff9dc.jpg 
http://farm5.static.flickr.com/4054/4538941056_cda5a8242d.jpg 
http://farm3.static.flickr.com/2091/4515081466_43cd1624ce.jpg 
http://farm3.static.flickr.com/2684/4485766664_3bb9dd9c80_m.jpg 
http://farm5.static.flickr.com/4010/4485115557_a38aac0e1f.jpg 
http://farm5.static.flickr.com/4055/4485115633_19e6e92276.jpg 
http://farm5.static.flickr.com/4045/4485766710_08691e99ed_m.jpg 
http://farm5.static.flickr.com/4024/4485115521_9ab2a33d53_m.jpg 
http://farm5.static.flickr.com/4048/4505577820_81ce080f2a_t.jpg 
http://farm6.static.flickr.com/5294/5389182894_920a54ce97_m.jpg 
http://farm5.static.flickr.com/4152/5073487038_5bdb9e3cbc_t.jpg 
http://farm5.static.flickr.com/4024/4485115401_67a8957509_m.jpg 
http://farm5.static.flickr.com/4062/4485766842_2209843592_m.jpg 

回答

1
$ids = array(); // Where we will keep our unique list of IDs 

$lines = array(/* your list of URLs here */); 
foreach ($lines as $line) { 
    preg_match(
    '|^http://[A-Za-z0-9\\.]+/[0-9]+/([0-9]+)_[a-f0-9]+.*\\.jpg$|', 
    'http://farm5.static.flickr.com/4054/4538941056_cda5a8242d.jpg', 
    $matches 
); 
    echo $matches[1]; // 4538941056 
    $ids[] = $matches[1]; // Push that into the IDs array 
} 
$ids = array_unique($ids); 
print_r($ids); 
+0

這並不作爲字符串的一部分工作是獨一無二的,但不是整個字符串 – JasonDavis 2013-05-12 06:25:19

+0

@jasondavis,我只是抓住了這一點,編輯我的答案。 RegEx是一個很好的選擇。首先解析ID,然後將其添加到數組中。你可以遍歷數組並使用'array_filter()'http://www.php.net/manual/en/function.array-filter.php過濾,但這對我來說似乎更容易。 – Brad 2013-05-12 06:26:05

+0

是的,我猜我需要幫助的部分是從價值部分獲取該ID – JasonDavis 2013-05-12 06:27:05

1

使用此代碼來獲取你的ID部分

$url = 'Your image url'; 
$path = parse_url($url, PHP_URL_PATH); 
$pathFragments = explode('/', $path); 
$end = end($pathFragments); 

$id = substr($end,0,9); 

然後運行array_unique()來獲得獨特的價值。

相關問題