-1

私は配列に頭を悩ませようとしています。これは前の質問へのフォローアップです。 PHP ある配列から別の配列に値を渡すにはどうすればよいですか?

Explosion Pillsのおかげで、ある配列から別の配列にデータを渡す方法を見つけましたが、配列を取得して新しい関数に渡し、新しい関数内で新しい配列を作成しようとしています。これは、今の私に見えるよりも簡単だと思います。

配列は次のとおりです。

$theSetup = array(

        'option1' => array('title'=>'my_title','label'=>'The Big Title','val'=>'NoneyoBizness'),
        'option2' => array('title'=>'my_watch,'label'=>'Big Watch','val'=>'Seiko'),
        'option3' => array('title'=>'facebook','label'=>'Facebook Page','val'=>'http://facebook.com/bigwatch'),

);

ここに私のテスト関数があります:

function testArray($theSetup) {
    foreach($theSetup as $v) {
        $defaultOptions[$v['title']] = $v['val'];
    }
    foreach($defaultOptions as $k=>$v) {
        echo $k .' : '.$v .'<br>';
    }
} 
testArray($theSetup);

コードを実行すると、次のエラーが表示されます。undefined variable theSetup

4

1 に答える 1

1

PHP コードに誤りがある場合は、それを表示するテキスト エディターを使用する必要があります。

これはうまくいきます:

<?php
    $theSetup = array(

            'option1' => array('title'=>'my_title','label'=>'The Big Title','val'=>'NoneyoBizness'),
            'option2' => array('title'=>'my_watch','label'=>'Big Watch','val'=>'Seiko'),
            'option3' => array('title'=>'facebook','label'=>'Facebook Page','val'=>'http://facebook.com/bigwatch'),

    );

    function testArray($theSetup) {
        foreach($theSetup as $v) {
            $defaultOptions[$v['title']] = $v['val'];
        }
        foreach($defaultOptions as $k=>$v) {
            echo $k .' : '.$v .'<br>';
        }
    } 
    testArray($theSetup);
?>

これはしません:

<?php
    $theSetup = array(

            'option1' => array('title'=>'my_title','label'=>'The Big Title','val'=>'NoneyoBizness'),
            'option2' => array('title'=>'my_watch,'label'=>'Big Watch','val'=>'Seiko'),
            'option3' => array('title'=>'facebook','label'=>'Facebook Page','val'=>'http://facebook.com/bigwatch'),

    );

    function testArray($theSetup) {
        foreach($theSetup as $v) {
            $defaultOptions[$v['title']] = $v['val'];
        }
        foreach($defaultOptions as $k=>$v) {
            echo $k .' : '.$v .'<br>';
        }
    } 
    testArray($theSetup);

?>

違いは、「my_watch」の後に引用符を閉じたことです。

出力

This works fine: my_title : NoneyoBizness
my_watch : Seiko
facebook : http://facebook.com/bigwatch
于 2013-03-29T18:12:03.400 に答える