【问题标题】:PHP: How to return a multidimentional array from a function [closed]PHP:如何从函数返回多维数组[关闭]
【发布时间】:2013-02-21 15:52:01
【问题描述】:

我的代码类似于;

function myFunc() {
    $myArry = array();
    $myArry[1]['first'] = "First";
    $myArry[1]['second'] = "Second";
    $myArry[2]['first'] = "First";
    $myArry[2]['second'] = "Second";
    $myArry[3]['first'] = "First";
    $myArry[3]['second'] = "Second";
    echo "before return: ".count($myArry);
    return $myArry;
}

// main code
$returnedArry = array(myFunc());
echo "after return: ".count($returnedArry);

输出:

before return: 3
after return: 1

这里发生了什么,有人可以解释一下吗?还有,我该怎么办?

谢谢。

【问题讨论】:

  • 对不起,请忽略这个帖子,我已经要求Mod关闭它,我的代码有错字所以这个问题完全无效

标签: php arrays multidimensional-array return-value


【解决方案1】:
$returnedArry = array(myFunc());

那行代码将您的数组放入另一个数组。由于它是该数组中唯一的元素,因此计数为 1。您真正想要的是:

$returnedArry = myFunc();

【讨论】:

  • @javano 那么你做错了什么else。这是返回数组的正确方法。
  • 感谢您的意见,这解释了为什么这不起作用。虽然我实际上在我的代码中引用了一个不同的函数,所以这个问题完全没有实际意义。给您带来的不便深表歉意!
【解决方案2】:

您将返回的 $myArry 包装在一个新数组中,因此它是 $returnedArry 中的单个条目。

    $returnedArray = array(
           array(
              0 => array(
                      'first' => "First",
                      'second' => "Second"
                   ),
              1 => ...
              2 => ...
          )
    )

要产生您正在寻找的结果:

    $returnedArray = myFunc();

以后,您可以使用print_rvar_dump 来帮助您展示这些数组中的内容。

【讨论】:

  • 感谢您的意见,这解释了为什么这不起作用。虽然我实际上在我的代码中引用了一个不同的函数,所以这个问题完全没有实际意义。给您带来的不便深表歉意!
猜你喜欢
  • 1970-01-01
  • 2018-09-25
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多