2016-12-17 59 views
1

我想從我的$ 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

請試試此代碼bellow。它應該如你所願地工作。

$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

我認爲你將有更好的運氣,如果你這樣做:

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

當你陣推就像你有你只是建立一個數組,但只有每名選舉是1第一個參數。