0

Hi I have this multi dimensional array in PHP:

$team_arrays = array (
                        "lakers" => array (
                                        24 => "Bryant",
                                        6  => "Price",
                                        17 => "Lin"
                        ),

                        "knicks" => array (
                                        7 => "Anthony",
                                       22 => "Shumpert",
                                       12 => "Jackson"
                        ),

                        "thunder" => array (
                                       35 => "Durant",
                                       0  => "Westbrook",
                                       13 => "Miller"
                        )
                    );

I wanted to display something like this:

Team Name: lakers

  1. Bryant = 24
  2. Price = 6
  3. Lin = 17

Team Name: knicks

  1. Anthony = 7
  2. Shumpert = 22
  3. Jackson = 12

...

This is the code that I tried but seems not to work:

foreach ($team_arrays as $names => $team) {
                        echo "<h2>Team Name: " . $names . "</h2>";
                        echo "<ol>";
                            foreach ($team_arrays as $jersey => $names) {
                                echo "<li>" . $names . " = " . $jersey . "</li>";
                            }
                        echo "</ol>";
                    }

It generates this kind of error

Notice: Array to string conversion in

Would anyone tries for a help. Please.

I found this solution from other question but seems I can't relate to it.

Community
  • 1
  • 1
joe.dev
  • 115
  • 2
  • 2
  • 12

3 Answers3

0

There is only one small problem in your code

foreach ($team_arrays as $jersey => $names) {
         ^ // again looping over the same outer array?

That inner loop is wrong, you should loop over $team and not $team_arrays because your outer loop picks up each team using $team variable.

foreach ($team as $jersey => $names) {

Rest of your code and logic is already fine.

Fiddle

Hanky Panky
  • 46,730
  • 8
  • 72
  • 95
0

You need to change this line from;

 foreach ($team_arrays as $jersey => $names) {

to:

   foreach ($team as $jersey => $names) {
Afsar
  • 3,104
  • 2
  • 25
  • 35
0

Change to foreach ($team as $jersey => $names)

Try this :

$team_arrays = array (
                        "lakers" => array (
                                        24 => "Bryant",
                                        6  => "Price",
                                        17 => "Lin"
                        ),

                        "knicks" => array (
                                        7 => "Anthony",
                                       22 => "Shumpert",
                                       12 => "Jackson"
                        ),

                        "thunder" => array (
                                       35 => "Durant",
                                       0  => "Westbrook",
                                       13 => "Miller"
                        )
                    );

 foreach ($team_arrays as $names => $team) {
                        echo "<h2>Team Name: " . $names . "</h2>";
                        echo "<ol>";
                            foreach ($team as $jersey => $names) {
                                echo "<li>" . $names . " = " . $jersey . "</li> \n";
                            }
                        echo "</ol>";
                    }                   
 ?>
Makesh
  • 1,236
  • 1
  • 11
  • 25