我有一個數組($name_new
)由一個文本文件中創建:如何比較兩個數組的差異並輸出只出現在一個數組中的密鑰?
foreach ($properties as $key => $row) {
$name_new[] = $row['name'];
}
這裏是$name_new
結果:
array(2) {
[0]=>
string(32) "john"
[1]=>
string(32) "frank"
}
而另一個數組,我從MySQL數據庫創建:
$sql = "SELECT * FROM data;
$p = $pdo->prepare($sql);
$p->execute();
foreach ($pdo->query($sql) as $row) {
$name_orig[] = $row['name'];
}
這裏是$name_orig
結果:
我比較這兩個數組:
if ($name_new != $name_orig) {
$name_result = array_diff_assoc($name_orig, $name_new);
foreach($name_result as $r){
echo "This name is not matching: ".$r;
}
}
所以我的結果這裏是:
這個名字不匹配:SAM
我的問題是,我也在我的結果中需要關鍵的名字。但是這個鍵只存在於文本文件中。
所以,如果我這樣寫:
foreach ($properties as $key => $row) {
$name_new[$key] = $row['name'];
}
這裏是$name_new[$key]
結果...
array(2) {
["123"]=>
string(32) "john"
["456"]=>
string(32) "frank"
}
...我拿到鑰匙。但我怎麼能這個鍵連接到我的結果sam
結果我需要的是
該名稱不匹配SAM(註釋:456)
對不起,我在我的代碼有一個錯誤,更新它,它都應該是'name'不'fileName' – Jarla
定格在我的答案,這個想法雖然是相同的。鑰匙在那裏供您處理,您只需要索取。 – Calimero
我測試了你的代碼。我的結果是:'這個名字是不匹配的:sam(Key:1)' – Jarla