here is my first array
$array1 = Array
(
[0] => Array
(
[class] => Nursery
[subjects] => Array
(
[0] => dance
[1] => Drawing
[2] => English
[3] => Hindi
[4] => Maths
[5] => Painting
[6] => Reading & Writing
)
)
[1] => Array
(
[class] => Kg
[subjects] => Array
(
[0] => Drawing
[1] => English
[2] => Hindi
[3] => Painting
[4] => Personality Development
)
)
[2] => Array
(
[class] => 1st
[subjects] => Array
(
[0] => Art & Craft
[1] => Computer
[2] => Drawing
[3] => English
[4] => Environmental Education
[5] => French
[6] => hand writing
[7] => Hindi
[8] => Maths
[9] => Moral Teaching
[10] => music
[11] => Painting
[12] => Spoken English
)
)
);
and the second array is
$array2 = Array
(
[0] => Array
(
[class] => Kg
[subjects] => Array
(
[0] => English
[1] => Hindi
)
)
[1] => Array
(
[class] => 1st
[subjects] => Array
(
[0] => English
[1] => Environmental Education
[2] => French
)
)
);
The desired output I want is like below
$output = Array
(
[0] => Array
(
[classname] => Nursery
[ischeck] => No
[subs] => Array
(
[0] => Array
(
[subjects] => dance
[ischeck] => No
)
[1] => Array
(
[subjects] => Drawing
[ischeck] => No
)
[2] => Array
(
[subjects] => English
[ischeck] => No
)
[3] => Array
(
[subjects] => Hindi
[ischeck] => No
)
[4] => Array
(
[subjects] => Maths
[ischeck] => No
)
[5] => Array
(
[subjects] => Painting
[ischeck] => No
)
[6] => Array
(
[subjects] => Reading & Writing
[ischeck] => No
)
)
)
[1] => Array
(
[classname] => Kg
[ischeck] => Yes
[subs] => Array
(
[0] => Array
(
[subjects] => Drawing
[ischeck] => No
)
[1] => Array
(
[subjects] => English
[ischeck] => Yes
)
[2] => Array
(
[subjects] => Hindi
[ischeck] => Yes
)
[3] => Array
(
[subjects] => Painting
[ischeck] => No
)
[4] => Array
(
[subjects] => Personality Development
[ischeck] => No
)
)
)
[2] => Array
(
[classname] => 1st
[ischeck] => Yes
[subs] => Array
(
[0] => Array
(
[subjects] => Art & Craft
[ischeck] => No
)
[1] => Array
(
[subjects] => Computer
[ischeck] => No
)
[2] => Array
(
[subjects] => Drawing
[ischeck] => No
)
[3] => Array
(
[subjects] => English
[ischeck] => Yes
)
[4] => Array
(
[subjects] => Environmental Education
[ischeck] => yes
)
[5] => Array
(
[subjects] => French
[ischeck] => Yes
)
[6] => Array
(
[subjects] => hand writing
[ischeck] => No
)
[7] => Array
(
[subjects] => Hindi
[ischeck] => No
)
[8] => Array
(
[subjects] => Maths
[ischeck] => No
)
[9] => Array
(
[subjects] => Moral Teaching
[ischeck] => No
)
[10] => Array
(
[subjects] => music
[ischeck] => No
)
[11] => Array
(
[subjects] => Painting
[ischeck] => No
)
[12] => Array
(
[subjects] => Spoken English
[ischeck] => No
)
)
)
)
what I have tried so far
$full_array = array();
foreach($array1 as $k)
{
$subarray = array();
foreach($array2 as $k1)
{
if($k['class'] == $k1['class'])
{
$classname = $k['class'];
foreach($k['subjects'] as $s)
{
if(in_array($s,$k1['subjects']))
{
$sub = array("subjects"=>$s,"ischeck"=>"Yes");
}
else
{
$sub = array("subjects"=>$s,"ischeck"=>"No");
}
array_push($subarray,$sub);
$ot1 = array("classname"=>$classname,"subs"=>$subarray);
array_push($full_array,$ot1);
}
}
else
{
$cname = $k['class'];
foreach($k['subjects'] as $sb=>$v)
{
$sub = array("subjects"=>$v,"ischeck"=>"No");
array_push($subarray,$sub);
}
$ot2 = array("classname"=>$cname,"subs"=>$subarray);
array_push($full_array,$ot2);
}
}
}
return $full_array;
If the first array has class kg and the second array have class kg then in the new array it should add a new option ischeck Yes and also the same for subjects comparing with array1 and array2 it should add ischeck on output array if the subject is present in array2 then it should add ischeck in output array after subject column.