我有1個多維數組:如果一個元素在多個數組中相同,則隨機選擇一個數組?
$adverts = array(array('text'=>'test', 'location' => 'location1'), array('text'=>'test', 'location' => 'location2'), array('text'=>'test', 'location' => 'location1'))
正如你所看到的,多維數組內的兩個數組包含的元素location
相同的文本。
我怎麼會檢測出來,並隨機選擇其中之一在foreach循環中,看起來是這樣的:
foreach ($adverts as $advert)
{
if ($hookName == $advert['advert_location'] && XenForo_Helper_Criteria::userMatchesCriteria($advert['user_criteria']))
{
$contents .= $advert['advert_code'];
}
}
(我知道數組不匹配)
在這的foreach循環中,多維陣列中每個陣列的每個location
都將根據預定義值進行檢查。如果多維數組中的多個數組具有相同的location
我只想使用其中的一個 - 換句話說,內容不會被多次修改爲同一位置。
但是,它應該使用來自每個匹配值的隨機數組。
這是可能的,你是否理解它,它將如何完成?
這將是恕我直言,最好使用'array_walk',而不是'array_reduce'因爲傳達了什麼事情發生更好。當然這是一個非常小的細節。 – Jon
'array_walk'既可以修改數組,也可以強制我使用'global',這就是爲什麼我使用'array_reduce' ......你能給出一個例子嗎? – Baba
@Baba:你真的不需要任何一個。 '函數(...)使用(&$結果){/ *修改$ results * /}' – cHao