如何修复 array_values() 期望参数 1 为数组,PHP 中给出的字符串?

How to fix array_values() expects parameter 1 to be array, string given in PHP?

详情

这是我试过的

   <nav id="nav">
    <ul class="container">

        <?php foreach(array_unique(array_values($continent)) as $continent_id){

            if($continent_id == 1 ) $continent = "Europe" ;  
            elseif ($continent_id == 2 ) $continent = "Asia" ;  
            elseif ($continent_id == 3 ) $continent = "North America" ;  
            elseif ($continent_id == 4 ) $continent = "Oceania" ;  
            elseif ($continent_id == 5 ) $continent = "South America" ;  
            else  $continent == "Africa" ; 

            ?> 

            <!-- HTML go here  -->

            <li><a href="#<?php echo $continent ; ?>"><?php echo $continent ; ?> </a></li>


            <?php } ?>

        </ul>
    </nav>

这是我得到的

错误消息说:array_values() 期望参数 1 为数组,字符串给定!

谁能告诉我我错过了什么?

$continent = "Europe"

在第一个循环中,您将数组更改为字符串 - 所以恕我直言,您应该将 $continent 更改为其他内容 ;-)

我修好了。好极了 !谢谢大家的意见。 :D。你们真棒。

这是我的工作代码

<!-- Nav -->
<nav id="nav">
    <ul class="container">

        <?php 

        foreach(array_unique(array_values($continent)) as $continent_id){


            if($continent_id == 1 ) $continent_name = "Europe" ;  
            elseif ($continent_id == 2 ) $continent_name = "Asia" ;  
            elseif ($continent_id == 3 ) $continent_name = "North America" ;  
            elseif ($continent_id == 4 ) $continent_name = "Oceania" ;  
            elseif ($continent_id == 5 ) $continent_name = "South America" ;  
            else  $continent_name == "Africa" ;  

            ?>

            <li><a href="#<?php echo $continent_name ?>"><?php echo $continent_name ?> </a></li>

            <?php }?>


        </ul>
    </nav>

这是结果