Welcome to the Cookbook

loading...

8.5.19 pushDiff

There is no translation yet for this section. Please help out and translate this.. More information about translations

array Set::pushDiff ($array1, $array2)

This function merges two arrays and pushes the differences in array2 to the bottom of the resultant array.

Example 1
$array1 = array('ModelOne' => array('id'=>1001, 'field_one'=>'a1.m1.f1', 'field_two'=>'a1.m1.f2'));
$array2 = array('ModelOne' => array('id'=>1003, 'field_one'=>'a3.m1.f1', 'field_two'=>'a3.m1.f2', 'field_three'=>'a3.m1.f3'));
$res = Set::pushDiff($array1, $array2);

/* $res now looks like: 
	Array
	(
	    [ModelOne] => Array
	        (
	            [id] => 1001
	            [field_one] => a1.m1.f1
	            [field_two] => a1.m1.f2
	            [field_three] => a3.m1.f3
	        )
	)			
*/
  1. $array1 = array('ModelOne' => array('id'=>1001, 'field_one'=>'a1.m1.f1', 'field_two'=>'a1.m1.f2'));
  2. $array2 = array('ModelOne' => array('id'=>1003, 'field_one'=>'a3.m1.f1', 'field_two'=>'a3.m1.f2', 'field_three'=>'a3.m1.f3'));
  3. $res = Set::pushDiff($array1, $array2);
  4. /* $res now looks like:
  5. Array
  6. (
  7. [ModelOne] => Array
  8. (
  9. [id] => 1001
  10. [field_one] => a1.m1.f1
  11. [field_two] => a1.m1.f2
  12. [field_three] => a3.m1.f3
  13. )
  14. )
  15. */
Example 2
$array1 = array("a"=>"b", 1 => 20938, "c"=>"string");
$array2 = array("b"=>"b", 3 => 238, "c"=>"string", array("extra_field"));
$res = Set::pushDiff($array1, $array2);
/* $res now looks like: 
	Array
	(
	    [a] => b
	    [1] => 20938
	    [c] => string
	    [b] => b
	    [3] => 238
	    [4] => Array
	        (
	            [0] => extra_field
	        )
	)
*/
  1. $array1 = array("a"=>"b", 1 => 20938, "c"=>"string");
  2. $array2 = array("b"=>"b", 3 => 238, "c"=>"string", array("extra_field"));
  3. $res = Set::pushDiff($array1, $array2);
  4. /* $res now looks like:
  5. Array
  6. (
  7. [a] => b
  8. [1] => 20938
  9. [c] => string
  10. [b] => b
  11. [3] => 238
  12. [4] => Array
  13. (
  14. [0] => extra_field
  15. )
  16. )
  17. */