2011-10-31 43 views
-1

我有一個這樣的數組:獲取ID

Array 
(
    [0] => Array 
     (
      [0] => Sales 
      [1] => Offices 
      [2] => Products 
     ) 
    [1] => Array 
     (
      [0] => Cars 
      [1] => Trucks 
      [2] => Management 
     ) 
) 

所有那些「汽車」「卡車」等都是鏈接<a href="/mysite/catalog/63">Cars</a>等。現在我需要得到該ID號的那些鏈接?但我很新的PHP,我不知道如何得到它。 Foreach循環和重置函數或類似的東西?

這是在drupal和ubercart上,如果需要這些信息的話。

謝謝。

回答

1

我認爲你正在尋找一個foreach循環與preg_matchexplode()提取ID:

$regex = '/href="([^"]+)/i'; 
foreach ($arr as $item) { 
    foreach ($item as $html) { 
    if (preg_match($regex, $html, $matches)) { 
     $id = end(explode('/', $matches[1])); 
     // For the string '<span class="field-content"><a href="/mysite/catalog/32">Cars/<a></span>' $id is equal to 32 
    } 
    } 
} 
+0

謝謝你Clive。這是我正在尋找的東西。現在得到ID了:) – user995317

2

像這樣:

foreach($yourarry as $arr2){ 
    foreach($arr2 as $id=>$text){ 
     echo $id; 
     echo $text; 
    } 
} 
+0

此時$ text = Cars。你需要爆炸()或正則表達式來獲得ID。 –

+0

謝謝,到目前爲止,但與xplode()有一些麻煩。我注意到它實際上也打印了一些html。基本上$文本是這樣的:汽車(和它的HTML:汽車/ 。我怎麼能得到ID#32從那個? – user995317

0

A HREF =「/ mysite/catalog/63「

...意味着63是Cars的id--但是你的示例數組中既沒有一個叫做id的鍵也沒有63的值 - 你不能編寫代碼來找到一個不存在的值。

如果要從鏈接文本中提取數字,然後查看各種字符串解析函數,最簡單的函數是strtok,explode或preg_match。