2015-08-31 33 views
0

我工作的連接系統和UI將發佈以下PHP - 從字符串拉IDS並轉換爲數組

"artwork:56,artwork:34,music:123" 

這將代表連接下面的媒體一個隱藏的字符串:

  • 藝術品ID:56
  • 藝術品ID:34
  • 音樂ID:123

我想弄清楚的是如何在上面的字符串中提供並吐出我需要的id。

function getArtworkIds($string){ 
    //Code Needed 
} 

結果[56,34]

任何幫助將是真棒,謝謝

+3

爆炸對昏迷,循環,爆炸冒號。如果UI發佈了更好的格式,它會更快(如果你有這個選項) –

+0

我可以使它發佈不同的格式。我試圖讓一個領域連接媒體。想象這是一個乾淨的方式發回列表 – hrthrherhrehrehterth

+1

然後發送一個真正的數組JSON編碼或序列化() –

回答

0
$string = "artwork:56,artwork:34,music:123"; 

$a = explode(',',$string); 
$ids = array(); 
foreach($a as $i){ 
    if(strpos($i,"art") !== false){ 
    $ids[] = explode(':',$i)[1]; 
    } 
} 
var_dump($ids); 

輸出:56,34

!== false是很重要的,因爲strpos將返回0由於字符串以art開頭。如果沒有!== false檢查,您將得不到結果,因爲if會將0視爲布爾錯誤

+0

爲什麼只有'藝術'?爲什麼不簡單的字符串比較整個字? –

+0

將'explode()[0]'與''artwork''進行比較?可以,但它不必爲爆炸陣列保留一個單獨的變量或調用爆炸兩次... – ElefantPhace

+0

無論如何你都會調用爆炸兩次,所以爲什麼不使用它 –