无法在PHP中打印数组

时间:2014-03-11 19:21:46

标签: php arrays

我在使用这个PHP代码时遇到了一些麻烦。我不确定为什么打印Array 8次。从我看来,它应该是打印数组的内容

目标是使用global声明一个数组,定义数组,将其分配给另一个数组并显示整个数组。

$car_array = array( );
$array = array( );

create_array_cars ();
displayProduct ($array);    

function  create_array_cars (  )  {
    global $car_array;
    $car_array = array( );
    $car_array[] = "ID: 12345" ;
    $car_array[] = "ID: 45678" ;
    $car_array[] = "ID: 67890" ;
    $car_array[] = "ID: 89123" ;
    return $car_array;
    }

function displayProduct ($array) {
    global $array;
    for ($i=0;$i<4;$i++) {
        print "$array<br>"; }
    }

$array = create_array_cars();
print (displayProduct($array));

4 个答案:

答案 0 :(得分:1)

当PHP将数组转换为String时,它只使用Array。您想使用print_rimplode或类似内容。

答案 1 :(得分:1)

将函数的返回值存储在变量中:

$array = create_array_cars();
displayProduct($array);

create_array_cars()返回一个数组 - 您需要将其存储在变量中以供以后使用。 displayProduct();将数组作为参数,并显示其中的内容。此外,它不返回值 - 因此我们不需要存储返回值。

在您不需要时停止使用global

全球通常被认为是一种糟糕的编码风格。你真的不想要它。您的功能甚至不需要处理外部数据。你只是在这个函数中创建一个数组 并返回它。所以你的代码可以是:

function create_array_cars() {

    // Create the array
    $car_array = array(
        "ID: 12345",
        "ID: 45678",
        "ID: 67890",
        "ID: 89123"
    );

    // Return it
    return $car_array;
}

打印数组,而不是尝试显示整个数组:

打印任何数组始终打印Array。您需要在数组中选择单个值 - 因为您使用的是基于数字索引操作的for循环,您可以使用$array[$i]执行此操作。

此外,我已将$i < 4更改为$i < count($array)。这使您的代码更加动态。即使数组中有超过4个元素,它也会工作(不是在这种情况下,因为你在另一个函数中手动返回一个预定义的数组)。

修改后的功能如下:

function displayProduct($array) {
    for ($i = 0; $i < count($array); $i++) {
        print $array[$i] . "<br />";
    }
}

答案 2 :(得分:1)

function displayProduct ($array) {
foreach ($array as $val) {
    print $val."<br>"; }
}

答案 3 :(得分:-2)

$car_array = array( );
$array = array( );

create_array_cars ();
displayProduct ($array);    

function  create_array_cars ()  {

    $car_array = array( );
    $car_array[] = "ID: 12345" ;
    $car_array[] = "ID: 45678" ;
    $car_array[] = "ID: 67890" ;
    $car_array[] = "ID: 89123" ;
    return $car_array;
    }

function displayProduct ($array) {
    //global $array;

        print_r( $array);
        echo "<bR>"; 

    }

$array = create_array_cars();
displayProduct($array);

不使用全球。并打印&#34; $ array
&#34;是不正确的...删除这个&#34; &#34 ;. 或使用print_r($ VAR)