Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multidimensional array in PHP using foreach loop [duplicate]

Here is an array from which I need to sort out the dept name, the full name and the salary , whose salary are above 10000rs. The array is:

Array
 (
 [PHP] => Array
    (
        [0] => Array
            (
                [name] => Jay
                [salary] => 8000
            )

        [1] => Array
            (
                [name] => Raj
                [salary] => 15000
            )

        [2] => Array
            (
                [name] => Mihir
                [salary] => 12000
            )

    )

[Flex] => Array
    (
        [0] => Array
            (
                [name] => Vijay
                [salary] => 14000
            )

    )

[System] => Array
    (
        [0] => Array
            (
                [name] => Kishan
                [salary] => 5000
            )

    )

 )

I am totally confused inside the loops of foreach and don't know how to call each value from the array.

My code allows me to display only names.

Can i know what is the best way to print and work with multidimensional arrays in PHP.

My code:

  foreach($newArray as $x=>$x_value){

                        foreach ($x_value as $y=> $y_value){
                                 if($y_value['salary']>10000)                                    
                                echo $y_value['name']." has ". $y_value['salary']. ", ";


                            }
                    }
like image 573
Dhruv Thakkar Avatar asked Nov 23 '25 12:11

Dhruv Thakkar


1 Answers

Use the following, Tested and working

$filterArray = array();
$i           = 0;
foreach($salary as $dept => $employee){
    foreach($employee as $index => $data){
        if($data['salary'] > 10000){
            $filterArray[$i]['deprtment'] = $dept;
            $filterArray[$i]['name']      = $data['name'];
            $filterArray[$i]['salary']    = $data['salary'];
        }
        $i++;
    }
}

Result :-

Array
(
[1] => Array
    (
        [deprtment] => PHP
        [name] => Raj
        [salary] => 15000
    )

[2] => Array
    (
        [deprtment] => PHP
        [name] => Mihir
        [salary] => 12000
    )

[3] => Array
    (
        [deprtment] => Flex
        [name] => Vijay
        [salary] => 14000
    )

)
like image 119
Rakesh Jakhar Avatar answered Nov 25 '25 00:11

Rakesh Jakhar



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!