dongque6377
2015-02-26 06:19
浏览 19
已采纳

PHP通过多维数组循环

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.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • douzong5057 2015-02-26 06:21
    已采纳

    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

    点赞 评论
  • dongqian1893 2015-02-26 06:21

    You need to change this line from;

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

    to:

       foreach ($team as $jersey => $names) {
    
    点赞 评论
  • duan1396 2015-02-26 06:24

    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> 
    ";
                                }
                            echo "</ol>";
                        }                   
     ?>
    
    点赞 评论

相关推荐 更多相似问题