0

我的代码类似于;

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

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

谢谢你。

4

2 回答 2

8
$returnedArry = array(myFunc());

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

$returnedArry = myFunc();
于 2013-02-21T15:52:57.893 回答
1

您将返回的值包装$myArry在一个新数组中,因此它是$returnedArry.

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

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

    $returnedArray = myFunc();

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

于 2013-02-21T15:57:27.223 回答