如何列出未知数量的数组

时间:2014-12-04 18:55:47

标签: php

我想这样做:

list($a, $b, $c) = array('a', 'b', 'c');
my_function($a, $b, $c);

但是数组中的值数量未知

my_function(some_function($array));

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您可以将数组传递给您的函数,这样您就可以获得所有变量。如果您的数组有密钥,则可以使用 PHP extract() function

// Build data array. Include keys as these will become the variable name later.
$data = array('a' => 'a', 'b' => 'b', 'c' => 'c');

// Call your function with data
my_function($data);

// Your function to parse data...
function my_function($data = NULL)
{
    // Verify you got data..
    if(is_null($data)){ return FALSE; }

    // Extract the array so that each value in the array gets assigned to a variable by it's key.
    extract($data);

    // Now you may echo values
    echo $a.$b.$c;
}

另一个更常见的选择是遍历数组。使用 foreach loop ,您可以一次引用一个数组的每个值。这可以这样做:

// Build data array. Include keys as these will become the variable name later.
$data = array('a','b','c');

// Call your function with data
my_function($data);

// Your function to parse data...
function my_function($data = NULL)
{
    // Verify you got data..
    if(is_null($data)){ return FALSE; }

    // Loop through data to operate
    foreach($data as $item)
    {
        // Now you may echo values
        echo $item;
    }
}

答案 1 :(得分:0)

如果将数组作为参数传递给函数,则可以使用foreach循环遍历任意长度的数组。

someFunction($returnedArray){

 foreach($returnedArray as $value){
  echo $value
 }
}

foreach将逐个元素,将当前索引的值分配给(在这种情况下)$ value。

答案 2 :(得分:-3)

只是不要使用list()功能。

传递一个数组来运行。 my_function(array(a, b, c,...))。如果你将使用哈希数组会更好。 extract()也不是一个好主意。

请参阅:this blogSO Post