2011-09-21 76 views
0

我將如何遍歷一個數組(300+項,通過simplexml導入)並提取每個具有特定$ x-> channel-> item->標題的項並將其放入不同的數組中?foreaching數組和匹配?

我不能讓的大海撈針的事情還是如何正面或反面推陣列

說我有一個數組(針),如:陣列(「3332」,「3300」,「3493」, 「8380」),如果其中任何一個通過大數組(haystack)出現,我想匹配。我該怎麼做呢?

回答

0

你必須迭代你的大數組,並檢查$x->channel->item->title的值。如果符合您的條件,將其推入新的數組:

$theArray; // Your 300+ array 
$lookFor = array('firstthing', 'second thing', 'third thing'); 
$newArray = array(); 

foreach($theArray as $x) { 
    if (in_array($x->channel->item->title, $lookFor)) { 
     array_push($newArray, $x); 
    } 
} 
+0

如何我會匹配多個嗎?我做=='一切'|| =='第二件事'|| =='第三件事'? – jmoon

+0

你可以使用in_array(),看下面的例子 – squall3d

+0

@jmoon - 看我更新的答案... –

0
foreach($yourArray as $key => $value) 
{ 
    //do your things with $key and/or $value 
} 
0

從約瑟夫的循環修改,你可以這樣做:

$theArray; // Your 300+ array 
$newArray = array(); 
$matchArray = array("3332","3300","3493","8380"); 

foreach($theArray as $x) { 
    if (in_array($x->channel->item->title, $matchArray)) { 
     array_push($newArray, $x); 
    } 
} 

退房in_array()在http://php.net/manual/en/function.in-array.php

+0

這是否防止重複,如果沒有重複的第一位?我正在嘗試一些不平衡的瘋狂的方法,導致每個四個顯示了四次,因爲我不知道如何循環,大聲笑 – jmoon

+0

如果$ matchArray中有重複,in_array()將簡單地返回true,所以應該不要重複。 – squall3d