$ age = array( "Peter" => "35"、 "Ben" => "37"、 "Joe" => "43");$ age2 = array( "Peter" => "Peter"、 "Ben" => "Ben");PHP配列diff
出力は次のようになります。 $ age = array( "Peter" => "35"、 "Ben" => "37"); // Joeと同じインデックスを使用しない
$ age = array( "Peter" => "35"、 "Ben" => "37"、 "Joe" => "43");$ age2 = array( "Peter" => "Peter"、 "Ben" => "Ben");PHP配列diff
出力は次のようになります。 $ age = array( "Peter" => "35"、 "Ben" => "37"); // Joeと同じインデックスを使用しない
$ age1と$ age2を比較し、$ age1から$ age2にないエントリを削除しますか?以下のようなarray_diff_key()を使用しそう:
$missingElements = array_diff_key($age2, $age1);
foreach($missingElements as $element) { // For each element NOT in both arrays
$index = $age1.indexOf($element);
unset($age1[$index]);
}
var_dump($age1); // Print on screen
このPHP関数は、キー 2の配列を比較し、その差を返します。したがって、関数によって返された各要素をループし、$ age1からそれらを削除します。
いいですね、それがインデックスではない値ならば?私はちょうどarray_diffを使用できますか? – user1143217
@ user1143217はい、あなたはあなたが私に与えたものから2つのキーの間の唯一の同時の値を得ることができます。そのためにそれらを比較しますが、同じスクリプトを使用して配列を値で比較することができます。 – FrenchMajesty
なぜ私は得ている:解析エラー:構文エラー、予期しない 'unset'(T_UNSET)?? – user1143217
あなたは何をしようとしているのか分かりませんが、$ age2配列は実際には見えません。 Joeを配列から削除したい場合は[unset()](http://php.net/manual/en/function.unset.php) – FrenchMajesty
Joeの削除は$ age2配列に存在しないため、それを単純化しようとしましたが、実際のデータはより複雑です。 – user1143217