Reputation: 223
A huge database values retriving problem i have simplified manually and giving here
in this code
$array = array(
"0" => array("course_id" => 1,"register_number"=>"16BCA01"),
"1" => array("course_id" => 1,"register_number"=>"16BCA02"),
"2" => array("course_id" => 1,"register_number"=>"16BCA03"),
"3" => array("course_id" => 1,"register_number"=>"16BCA04"),
"4" => array("course_id" => 2,"register_number"=>"16BCA05"),
"5" => array("course_id" => 2,"register_number"=>"16BCA06"),
"6" => array("course_id" => 3,"register_number"=>"16BCA07"),
"7" => array("course_id" => 3,"register_number"=>"16BCA08"),
"8" => array("course_id" => 4,"register_number"=>"16BCA09"),
"9" => array("course_id" => 4,"register_number"=>"16BCA10"),
"10" => array("course_id" => 5,"register_number"=>"16BCA11"),
"11" => array("course_id" => 5,"register_number"=>"16BCA12"),
"12" => array("course_id" => 6,"register_number"=>"16BCA13"),
"13" => array("course_id" => 6,"register_number"=>"16BCA14"),
"14" => array("course_id" => 6,"register_number"=>"16BCA15"),
"15" => array("course_id" => 7,"register_number"=>"16BCA16"),
"16" => array("course_id" => 7,"register_number"=>"16BCA17"),
"17" => array("course_id" => 7,"register_number"=>"16BCA18"),
"18" => array("course_id" => 8,"register_number"=>"16BCA19"),
"19" => array("course_id" => 8,"register_number"=>"16BCA20"),
"20" => array("course_id" => 9,"register_number"=>"16BCA21")
) ;
print_r($array);
the answer will come like the course_id in sequential
Array (
[0] => Array ( [course_id] => 1 [register_number] => 16BCA01 )
[1] => Array ( [course_id] => 1 [register_number] => 16BCA02 )
[2] => Array ( [course_id] => 1 [register_number] => 16BCA03 )
[3] => Array ( [course_id] => 1 [register_number] => 16BCA04 )
[4] => Array ( [course_id] => 2 [register_number] => 16BCA05 )
[5] => Array ( [course_id] => 2 [register_number] => 16BCA06 )
[6] => Array ( [course_id] => 3 [register_number] => 16BCA07 )
[7] => Array ( [course_id] => 3 [register_number] => 16BCA08 )
[8] => Array ( [course_id] => 4 [register_number] => 16BCA09 )
[9] => Array ( [course_id] => 4 [register_number] => 16BCA10 )
[10] => Array ( [course_id] => 5 [register_number] => 16BCA11 )
[11] => Array ( [course_id] => 5 [register_number] => 16BCA12 )
[12] => Array ( [course_id] => 6 [register_number] => 16BCA13 )
[13] => Array ( [course_id] => 6 [register_number] => 16BCA14 )
[14] => Array ( [course_id] => 6 [register_number] => 16BCA15 )
[15] => Array ( [course_id] => 7 [register_number] => 16BCA16 )
[16] => Array ( [course_id] => 7 [register_number] => 16BCA17 )
[17] => Array ( [course_id] => 7 [register_number] => 16BCA18 )
[18] => Array ( [course_id] => 8 [register_number] => 16BCA19 )
[19] => Array ( [course_id] => 8 [register_number] => 16BCA20 )
[20] => Array ( [course_id] => 9 [register_number] => 16BCA21 ) )
but i want the course_id to come in alternatives values like this
Array (
[0] => Array ( [course_id] => 1 [register_number] => 16BCA01 )
[1] => Array ( [course_id] => 2 [register_number] => 16BCA05 )
[2] => Array ( [course_id] => 1 [register_number] => 16BCA02 )
[3] => Array ( [course_id] => 2 [register_number] => 16BCA06 )
[4] => Array ( [course_id] => 1 [register_number] => 16BCA03 )
[5] => Array ( [course_id] => 3 [register_number] => 16BCA07 )
[6] => Array ( [course_id] => 1 [register_number] => 16BCA04 )
[7] => Array ( [course_id] => 3 [register_number] => 16BCA08 )
[8] => Array ( [course_id] => 4 [register_number] => 16BCA09 )
[9] => Array ( [course_id] => 5 [register_number] => 16BCA11 )
[10] => Array ( [course_id] => 4 [register_number] => 16BCA10 )
[11] => Array ( [course_id] => 5 [register_number] => 16BCA12 )
[12] => Array ( [course_id] => 6 [register_number] => 16BCA13 )
[13] => Array ( [course_id] => 7 [register_number] => 16BCA16 )
[14] => Array ( [course_id] => 6 [register_number] => 16BCA14 )
[15] => Array ( [course_id] => 7 [register_number] => 16BCA17 )
[16] => Array ( [course_id] => 6 [register_number] => 16BCA15 )
[17] => Array ( [course_id] => 7 [register_number] => 16BCA18 )
[18] => Array ( [course_id] => 8 [register_number] => 16BCA19 )
[19] => Array ( [course_id] => 9 [register_number] => 16BCA21 )
[20] => Array ( [course_id] => 8 [register_number] => 16BCA20 ) )
course_id 1 and 2 should alternatively come first if either one id finished means it should move to the next id 3 or 4 likewise till end it should loop. Which means course_id should not repeat same values as previous value how to acheive this in php
Upvotes: 0
Views: 38
Reputation: 2642
You need to create your own logic. Using nested for loop and array functions you can achieve your requirements. Please see the below code, it will help you.
$array = array(
"0" => array("course_id" => 1,"register_number"=>"16BCA01"),
"1" => array("course_id" => 1,"register_number"=>"16BCA02"),
"2" => array("course_id" => 1,"register_number"=>"16BCA03"),
"3" => array("course_id" => 1,"register_number"=>"16BCA04"),
"4" => array("course_id" => 2,"register_number"=>"16BCA05"),
"5" => array("course_id" => 2,"register_number"=>"16BCA06"),
"6" => array("course_id" => 3,"register_number"=>"16BCA07"),
"7" => array("course_id" => 3,"register_number"=>"16BCA08"),
"8" => array("course_id" => 4,"register_number"=>"16BCA09"),
"9" => array("course_id" => 4,"register_number"=>"16BCA10"),
"10" => array("course_id" => 5,"register_number"=>"16BCA11"),
"11" => array("course_id" => 5,"register_number"=>"16BCA12"),
"12" => array("course_id" => 6,"register_number"=>"16BCA13"),
"13" => array("course_id" => 6,"register_number"=>"16BCA14"),
"14" => array("course_id" => 6,"register_number"=>"16BCA15"),
"15" => array("course_id" => 7,"register_number"=>"16BCA16"),
"16" => array("course_id" => 7,"register_number"=>"16BCA17"),
"17" => array("course_id" => 7,"register_number"=>"16BCA18"),
"18" => array("course_id" => 8,"register_number"=>"16BCA19"),
"19" => array("course_id" => 8,"register_number"=>"16BCA20"),
"20" => array("course_id" => 9,"register_number"=>"16BCA21")
);
$new_array = array();
$k = 1;
for($i = 0; $i<=count($array);$i++)
{
$i = 0;
$new_array[]= $array[$i];
for($j=0;$j<=count($array);$j++)
{
if($array[$i]['course_id'] != $array[$j]['course_id'])
{
$new_array[]= $array[$j];
unset($array[$i]);
unset($array[$j]);
$array = array_values($array);
break;
}
}
}
array_pop($new_array);
print_r($new_array);
Upvotes: 1