2014-02-15 18 views
0

我有一個數組:如何陣列轉換爲多個變量是在PHP

$r = array(1,2,42,55); 

,我想調用hashids

encrypt();函數,該函數的輸入是這樣的:

encrpyt(1,2,42,55); 

我試過extract($r)但它不起作用。

+1

我想你應該對數組值進行加密而不是數組! –

+0

是的,這就是爲什麼我想從陣列提取值。 – jeff

回答

0

可以調用在每個陣列的元件的一個回調。如果有幫助,請檢查array_map

0

這是醜陋的,但有這樣的:

的eval( 「加密(」 破滅( 「」,$ R) 「);」);

這裏是您的強制性提醒 eval是潛在的危險,很少使用!

編輯:忘了call_user_func_array。這是你的答案!示例代碼:

$r = array(1,2,42,55); 
$hashids = new Hashids\Hashids('this is my salt'); 
$hash = call_user_func_array(array($hashids, "encrypt"), $r); 
+0

看起來不錯。謝謝 !我現在沒有時間去嘗試,我會盡快做。 – jeff

+0

好吧,如果它適合你,請不要忘記標記爲已接受。有趣的是,[PHP 5.6已經解決了這個問題,你(http://docs.php.net/manual/en/migration56.new-features.php)。 '$ hashids->加密(... $ R);' – miken32