2
我一直在研究比較兩個關聯陣列,我只能用相當的準確度做到這一點。我已閱讀S.O.上所有類似的線索。但沒有解決或解決我遇到的問題,即在比較兩個關聯數組時,測試數據將成功顯示適當的匹配,但是當我嘗試計算匹配值的數量時,我得到了一些奇怪的結果。比較和計數兩個關聯陣列的匹配值 - PHP
編輯:
<?php
$data = array(
'Alpha' => array(
'peace' => 0,
'art' => 1,
'trend' => 0,
'night' => 1,
'shop' => 0
),
'Beta' => array(
'peace' => 1,
'art' => 1,
'trend' => 1,
'night' => 1,
'shop' => 0
),
'Gamma' => array(
'peace' => 0,
'art' => 1,
'trend' => 1,
'night' => 1,
'shop' => 0
)
);
$choices = array(
'peace' => 0,
'art' => 1,
'trend' => 0,
'night' => 1,
'shop' => 0
);
function compare($data, $choices)
{
foreach ($data as $city => $name)
{
echo $city . '<br>';
foreach ($name as $key => $value)
{
($choices[$key] === $value) ? $match = 'match' : $match = 'no';
($choices[$key] === $value) ? $i++ : $i = 0;
echo $key . ':' . $value . ':' . $choices[$key] . ':' . $match . '<br>';
}
echo 'Matches:' . $i . '<br><br>';
}
}
compare($data, $choices);
?>
輸出數據
Format of data is as follows
-----------------------------
name of key:$data value:$choices value:is match
Alpha
peace:0:0:match
art:1:1:match
trend:0:0:match
night:1:1:match
shop:0:0:match
Matches:5
Beta
peace:1:0:no
art:1:1:match
trend:1:0:no
night:1:1:match
shop:0:0:match
Matches:2
Gamma
peace:0:0:match
art:1:1:match
trend:1:0:no
night:1:1:match
shop:0:0:match
Matches:2
'阿爾法' 應該返回5場比賽,其中它。 'Beta'應該返回3,它返回2. 'Gamma'應該返回4,它返回2.
任何幫助將不勝感激。先謝謝你。
哇,我不知道這會有什麼不同。謝謝,它工作! –
不客氣。 –