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_rorvar_dumpを使用して、これらの配列の内容を示すことができます。

于 2013-02-21T15:57:27.223 に答える