2012-10-23 104 views
-1

新的包含數組元素的數組看起來是這樣的:搜索多陣列和創建原始陣列

$array = array(
    array(
    'Item' => array(47, 48, 46, 42), 
    'ID' => 1, 
), 
    array(
    'Item' => array(29, 37, 46, 48), 
    'ID' => 2, 
), 
    array(
    'Item' => array(33, 27, 18), 
    'ID' => 3, 
), 
); 

我所試圖做的是通過[項目]數組進行搜索,如果有匹配,將[ID]添加到新陣列。

所以,如果我正在尋找46那麼我會以簡單的數組得到ID的12的結果。

我相信這應該是如此簡單,但我似乎已經達到了完整的心理障礙,所以任何幫助將不勝感激。

回答

0

嘗試:

$ids = array(); 
foreach($yourArray as $v) 
    if(in_array(46, $v["Item"])) 
     $ids[] = $v["ID"]; 
+0

我發誓我試過....我知道這很簡單!無論如何,這很好,謝謝你讓我擺脫我的錯誤! – James

0

試試這個,

foreach($array as $v) { 
if(in_array(46, $v['Item']) 
    $ids[] = $v['ID']; //array $ids will contain 1, 2..and so on. 
} 
+0

與以下答案一樣,謝謝。你已經救了我的理智! – James

0

您是否嘗試過使用in_array()?

您可以迭代數組並檢查您的值是否位於Item數組中。就像:

function getId(array $array, $value) { 
    $ids = array(); 
    foreach ($array as $element) { 
     if (in_array($value, $element['Item'])) { 
      $ids[] = $element['ID']; 
     } 
    } 
    return $ids; 
}