2016-12-17 2 views
1

に挿入します。my $ key配列の値からasso1()、asso2()、asso3()関数を呼び出し、それぞれ$keyのパラメータを1 、今2,3セット。だから現在の状態で私は出力111を得ているが、それは123でなければならない。どうすればそれを達成できますか?動的な名前の関数配列キーを呼び出して、その値をパラメータ

function asso1($a) { 
    // echo "output form asso1<br>"; 
    return $a; 
} 
function asso2($b) { 
    // echo "output form asso2<br>"; 
    return $b; 
} 
function asso3($c) { 
    // echo "output form asso3"; 
    return $c; 
} 


$asso = array("asso1"=>"1", "asso2"=>"2", "asso3"=>"3"); 

foreach ($asso as $key => $_asso) { 

    $ar[] = $_asso; 
    $fv = call_user_func_array($key,$ar); 

    print_r($fv); 

} 
+0

ちょうど 'call_user_func_array($キー、配列($ _ ASSO))を試してみてください;' – Rasclatt

+0

あなたはこの '$のAR [] = $ _assoでやっている;' 'そして'配列( '1')を送信しています'array(1,2)'、 'array(1,2,3)'そして '1 'の最初のパラメータを返すだけです – Rasclatt

答えて

0

このコードを試してください。あなたが望むように動作するはずです。

$asso = array("asso1"=>"1", "asso2"=>"2", "asso3"=>"3"); 

foreach ($asso as $key => $_asso) { 

    // $ar[] = $_asso; 
    // $fv = call_user_func_array($key,$ar); 

    $fv = call_user_func_array($key,array($_asso)); 

    print_r($fv); 

} 
+0

2分後で15分前のコメントと同様に? – Rasclatt

+0

ああすみません。私はちょうどあなたが答えていないコメントを入れているので、私はコードをテストし、答えを入れようとしたことを確認した。私が間違ったことをしたら、親愛なる友人をごめんね。 –

1

私はあなたが行う場合は、より良い運を持っているだろうと思い:あなたはあなただけのアレイを構築するだけで、すべての1ある最初のパラメータを返すされているよう

foreach($asso as $key => $_asso) { 
    $fv = call_user_func_array($key,array($_asso)); 
    print_r($fv); 
} 

あなたは、配列のプッシュを行うと。

関連する問題