我的代码类似于;
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
这里发生了什么,有人能解释一下吗?还有,我该怎么办?
谢谢。
$returnedArry = array(myFunc());
这行代码正在将您的数组放入另一个数组中。由于它是该数组中唯一的元素,因此计数为1。你真正想要的是:
$returnedArry = myFunc();
您将返回的$myArry
封装在一个新数组中,因此它是$returnedArry
中的单个条目。
$returnedArray = array(
array(
0 => array(
'first' => "First",
'second' => "Second"
),
1 => ...
2 => ...
)
)
要产生您想要的结果:
$returnedArray = myFunc();
将来,您可以使用print_r
或var_dump
来帮助显示这些数组中的内容。