【问题标题】:PHP Passing an Array to a FunctionPHP将数组传递给函数
【发布时间】:2013-01-16 07:47:57
【问题描述】:

如何将数组传递给函数?

假设我有这个多维数组:

$TheArray = (
array("Value 1 0","Value 1 1","Value 1 2"),
array("Value 2 0","Value 2 1","Value 2 2"),
array("Value 3 0","Value 3 1","Value 3 2")
);

而不是这样做......

for ($i=0; $i<=(count($TheArray)-1); $i++)
{
echo $TheArray[$i][0] . " " . $TheArray[$i][1] . " " . $TheArray[$i][2] . "<br />";
}

我想这样做......

function DoStuffWithTheArray($SubArr)
{
echo $SubArr[0] . " " . $SubArr[1] . " " . $SubArr[2] . "<br />";
}

for ($i=0; $i<=(count($TheArray)-1); $i++)
{
DoStuffWithTheArray($TheArray[$i]);
}

希望你能说出我想要做什么,但我不知道如何让它工作。当我按照我想要的方式尝试时,所有的值都是空的

【问题讨论】:

  • all the values are empty是什么意思?你没有得到任何输出吗?
  • 养成使用foreach loops 进行数组迭代的习惯。在 PHP 中,使用增量for 循环实际上对于基本迭代并不常见。
  • 尝试将echo 'function called&lt;br/&gt;'; 添加到function DoStuffWithTheArray 以检查您是否调用了该函数
  • 你是不是错过了array$TheArray = array(
  • 除了缺少 array( 关键字外,它的工作原理与您的完全一样。 codepad.viper-7.com/Ysz6qT。如果这是您的问题(空白屏幕),请打开错误报告。 error_reporting(E_ALL); ini_set('display_errors', 1);

标签: php arrays function multidimensional-array


【解决方案1】:

我认为,你需要先学习如何创建一个数组;

// instead of this
$TheArray = (...
// you can create an array so
$TheArray = array(...

二、换这种风格请看:http://php.net/manual/en/control-structures.foreach.php

for ($i = 0; $i < count($TheArray); $i++)

然后回答;

$array = array(
    array("Value 1 0", "Value 1 1", "Value 1 2"),
    array("Value 2 0", "Value 2 1", "Value 2 2"),
    array("Value 3 0", "Value 3 1", "Value 3 2")
);

function fn($a) {
    print "$a[0], $a[1], $a[1]\n";
}

foreach ($array as $a) fn($a);
值 1 0,值 1 1,值 1 1 值 2 0,值 2 1,值 2 1 值 3 0,值 3 1,值 3 1

【讨论】:

  • 我知道如何创建一个数组。这是我的错字。感谢您的帮助。
【解决方案2】:

只需将数组传入:

function DoStuffWithTheArray($array) {
    $array[0]...$array[n];
}

应该可以。不是吗?

【讨论】:

  • 这就是 OP 在循环中使用 DoStuffWithTheArray($TheArray[$i]) 所做的事情。
  • 第二个例子对我有用。您确实需要进行以下更正:$TheArray = array(...。但是当我在数组和代码的第二部分过去时,它在writecodeonline.com/php 上运行得很好
【解决方案3】:

如果你想改变数组的内容,那么你需要通过引用来传递它:

Argument passing by Reference

【讨论】:

    猜你喜欢
    • 2012-07-19
    • 2012-06-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 2017-11-07
    • 2020-07-28
    • 2011-06-20
    相关资源
    最近更新 更多