2011-05-01 21 views
2

这里的想法是有一系列的应用技巧/语言/英文/ tips_lang.phpCodeIgniter PHP - 如何随机选择语言类消息?

$lang['tip1'] = 'Water your plants'; 
$lang['tip2'] = 'Aerate your soil'; 
$lang['tip3'] = 'Use ventilation'; 
$lang['tip4'] = 'Fertilizers are good'; 

etc... 

在我的控制,我想有这样的事情伪代码

$input = $this->lang->line('tip_array'); 

$tip = array_rand($input, 1); 

任何人都知道这是可能的吗?

感谢您的帮助!

更新控制器

 //Random Tip 
     $array = explode('|', $this->lang->line('tips')); 
     $tips = array_rand($array, 1); 
     $this->template->write('tips', $tips); 

回答

3

笨不支持的语言文件n维数组,但你可以解决的是:

$lang['tips'] = 'Water your plants|Aerate your soil|Use ventilation|Fertilizers are good'; 

或者,如果你preffer让他们一个在每一行上:

$lang['tips'] = array(); 
$lang['tips'][] = 'Water your plants'; 
$lang['tips'][] = 'Aerate your soil'; 
$lang['tips'][] = 'Use ventilation'; 
$lang['tips'][] = 'Fertilizers are good'; 
$lang['tips'] = implode('|', $lang['tips']); 

/controllers/yourController.php:

$tips = explode('|', $this->lang->line('tips')); 

echo $tips[array_rand($tips, 1)]; 

希望它能帮助!

+0

thanks @alix - 不知道如何处理最后一行代码中的'$ language' - 它会生成一个错误 – pepe 2011-05-01 03:54:28

+0

@torr:对不起,这是一个错字 - 修正了它! – 2011-05-01 03:55:34

+0

;) - 确定 - 这现在可以工作,但以一种有趣的方式 - 我得到随机线回显我的看法,但他们也是从另一个lang文件在同一文件夹中。我正在使用自动加载的提示lang文件和这个其他的lang文件。这可能是问题吗? – pepe 2011-05-01 03:58:51