Create an array from another array result - php

87 Views Asked by At

I have 2 kind of classes: math and physics. In the loop , count(lessonclasses) is equal to 2 then 3. How can I proceed for my expected output ,

My code is :

  $result[]=array();
  foreach($lessons as $nameLesson)
{
$lessonclasses=$Board->GetLessonsClass($iduser,$nameLesson);
$tabPrice=$redevance->detailPriceForLesson($nameLesson)
$price=$tabPrice[0];
$frequency=$tabPrice[1];
//echo "nb of class per lesson: ".count($lessonclasses);
for($i=0;$i<count($lessonclasses);$i++)
    { 
    //var_dump($lessonclasses);
    $name=$lessonclasses[$i][0]; 
    $amount=$lessonclasses[$i][1];
    $timelessonstart=$lessonclasses[$i][2]; 
    $timelessonend=$lessonclasses[$i][3]; 

    $result[$i][]=array($name,$price."€/".$frequency,$timelessonstart,$timelessonend,$amount);
    //$arrayOptions[$nbLessons][]=$options; //for keep values
    //$nbLessons=$nbLessons+1;
    }
    }   
      var_dump($result);

I have an array like :

array(3) {
 [0]=> array(2) { 
    [0]=> array(5) { 
        [0]=> string(15) "maths" 
        [1]=> string(11) "10.00" 
        [2]=> string(10) "2015-06-17" 
        [3]=> string(1) "-"
         [4]=> string(6) "10.00" 
    }
     [1]=> array(5) { 
        [0]=> string(31) "physique" 
        [1]=> string(10) "6.00" 
        [2]=> string(10) "2015-01-01" 
        [3]=> string(1) "-"
         [4]=> string(5) "36.00"
     }
     }
 [1]=> array(2) {
         [0]=> array(5) {
         [0]=> string(15) "maths" 
        [1]=> string(11) "20.00" 
        [2]=> string(10) "2015-06-17"
         [3]=> string(1) "-" 
        [4]=> string(6) "100.0" 
          } 
[1]=> array(5) {
         [0]=> string(31) "physique" 
        [1]=> string(10) "16.00"
         [2]=> string(10) "2015-05-01" 
        [3]=> string(1) "-"
         [4]=> string(5) "36.00" 
         }
 }
 [2]=> array(1) {
         [0]=> array(5) {
            [0]=> string(15) "Maths" [1]=> string(11) "11.00" [2]=> string(10) "2015-05-17" [3]=> string(1) "-" [4]=> string(5) "20.00" } } } 

My expected output is :

array(3) { 
[0]=> array(2) { 
    [0]=> array(5) { 
        [0]=> string(15) "maths" 
        [1]=> string(11) "10.00" 
        [2]=> string(10) "2015-06-17" 
        [3]=> string(1) "-"
         [4]=> string(6) "10.00" 
    }
     [1]=> array(2) {
         [0]=> array(5) {
         [0]=> string(15) "maths" 
        [1]=> string(11) "20.00" 
        [2]=> string(10) "2015-06-17"
         [3]=> string(1) "-" 
        [4]=> string(6) "100.0" 
          } 
    [2]=> array(5) {
         [0]=> string(31) "math" 
        [1]=> string(10) "11.00"
         [2]=> string(10) "2015-05-01" 
        [3]=> string(1) "-"
         [4]=> string(5) "36.00" 
     }
 }
 [1]=> array(2) { 
    [0]=> array(5) { 
        [0]=> string(31) "physique" 
        [1]=> string(10) "6.00" 
        [2]=> string(10) "2015-01-01" 
        [3]=> string(1) "-"
         [4]=> string(5) "36.00"

     }

    [1]=> array(5) {
         [0]=> string(31) "physique" 
        [1]=> string(10) "16.00"
         [2]=> string(10) "2015-05-01" 
        [3]=> string(1) "-"
         [4]=> string(5) "36.00" 
     }

 }

} }

4

There are 4 best solutions below

1
On

you need to use sum

SELECT name,sum(qty) FROM table_name group by name;
0
On
SELECT name,sum(qty) FROM tableName group by name;
0
On

Simply

SELECT name, SUM(qty) AS total_amount FROM table GROUP BY name
0
On

Its working for you..

SELECT name,sum(qty) FROM table_name GROUP BY name;