PHP array comparison problems
$ Ar1 = array ('id' => 1, "name" => "1", "sign" => ""), array ('id' => 2, "name" => "zhang 2", "sign" => ""), array ('id' => 5, "name" => "5", "sign" => ""); $ ar2 = array ('id' => 1, "name" => "1"), array ('id' => 2, "name" => "2 "));
If the id of ar2 is the same as that of ar1, the sign of ar1 is copied to 1. otherwise, no value is assigned. how can this problem be solved?
Reply to discussion (solution)
$ Ar1 = array ('id' => 1, "name" => "1", "sign" => ""), array ('id' => 2, "name" => "zhang 2", "sign" => ""), array ('id' => 5, "name" => "5", "sign" => ""); $ ar2 = array ('id' => 1, "name" => "1"), array ('id' => 2, "name" => "2 ")); // Normalize $ ar2 foreach ($ ar2 as $ v) $ r [$ v ['id'] = $ v; $ ar2 = $ r; // The following describes how to use foreach ($ ar1 as & $ v) {if (isset ($ ar2 [$ v ['id']). $ v ['sign'] = 1;} print_r ($ ar1 );
Array ([0] => Array ([id] => 1 [name] => 1 [sign] => 1) [1] => Array ([id] => 2 [name] => 2 [sign] => 1) [2] => Array ([id] => 5 [name] => 5 [sign] => ))