PHP回显函数内的多维数组

时间:2017-02-28 12:27:03

标签: php arrays function multidimensional-array foreach

我面临一个小问题,我想我忽略了一切。我想要一个回显数据库中所有类别列表的函数。

<link rel="stylesheet" href="css/bootstrap.css">
<script src="js/jquery.js"></script
<script src="js/bootstrap.js"></script>

但是,我收到以下错误:

$host = "localhost"; $dbuser = "user"; $dbpass = "password"; $dbname = "name"; $dbcon = mysqli_connect($host, $dbuser, $dbpass, $dbname) or die(mysqli_error()); $multi_array = array(); $query = mysqli_query($dbcon, 'SELECT * FROM `fdf_content`'); while($output = mysqli_fetch_array($query)){ $multi_array[] = $output; } function get_cats($multi_array){ foreach($multi_array as $cats){ echo $cats['category']; } } Missing argument 1 for get_cats() Undefined variable: multi_array

问题是该函数中的数组未定义,但我不知道为什么。提前谢谢!

3 个答案:

答案 0 :(得分:1)

PHP中的scope of a variable是创建(初始化/修改)的函数。在任何函数之外创建/修改的变量都是全局变量,它们只在函数外部可见。

让函数作为参数接收要使用的值:

function get_cats(array $categories){
    foreach ($categories as $cats){
        echo $cats, " "; 
    }
}

在函数调用上传递所需的值作为参数:

$multi_array = array();
while ($output = mysqli_fetch_array($query)) {
    $multi_array[] = $output;
}

// Call the function that prints the content of $multi_array
get_cats($multi_array);

这样您可以使用不同的值重用get_cats()函数:

$fruits = array('apple', 'banana', 'orange');

get_cats($fruits);
// Will print:
// apple banana orange

答案 1 :(得分:-1)

如果要获得多维数组,请按以下方式使用:

function get_cats() {
foreach($multi_array as $cats->$value){
    echo $value; 
}}

如果以上不起作用,请在下面进行测试:

 function get_cats() {
foreach($multi_array as $cats->$value){
    print_r($value); 
}}

要再次检查值是数组还是对象。

答案 2 :(得分:-1)

你有语法错误! 试试这个

       function get_cats(){
       foreach($multi_array as $cats)
       {
           echo $cats; 
       } 
       }