我在脚本中使用array_walk,我可以调用一个特定的函数;现在,我想从类似函数池中随机调用一个函数并操纵数组值。它可以是一个循环结构。更具体地说,它们都是图像功能,动态生成图像。另一个要求是我需要以特定顺序将图像保存在诸如001.jpg,002.jpg,003.jpg等文件夹中。目前,我正在使用代码imagejpeg($im, "savedimages/" . time() . "-" . rand() . ".jpg", 90);
保存图像。当我随机调用函数时,是否可以在保存图像时保持类似的顺序。我需要一个想法如何做到这一点。
$fontFace = 'AmsiPro-Ultra.ttf';
$sentences = preg_split('/(?<=[.?!])\s+(?=[a-z])/i', $html);
array_walk($sentences, 'dynamicImage', $fontFace);
function dynamicImage($sentence, $key, $fontFace)
{
$img = 'green.jpg';
$client = new Client;
$image = $client->loadJpeg($img);
$palette = $image->extract();
imagickResize($img);
// create a transparent base image that we will merge the square image into.
$img = new Img();
$img->create(640, 720, true);
// first image; merge with base.
$img2 = new Img('small_square_img.jpg');
$img->merge($img2);
$img->save();
$color = 'D2F57D';
pngcolorizealpha('second_img.png', $color);
stringFunction($sentence, $palette[0], $fontFace);
$im = mergeImages(array(
'first.image.jpg',
'second.image.jpg'
));
# header('Content-type: image/jpg');
imagejpeg($im, "savedimages/" . time() . "-" . rand() . ".jpg", 90);
}
答案 0 :(得分:0)
类似这样的事情
$func_1 = function(){
echo '1';
};
$func_2 = function(){
echo '2';
};
$functions = array(
$func_1,
$func_2,
..
);
array_shuffle( $functions );
$functions[1]( );
或
foreach( $functions as $index => $function ){
$function();
}
在最后一个array_shuffle上,如果我记得右键将重置键,如果没有,你可以使用array_values($ functions)来重置它们。另请注意,我没有对此进行测试,但基本上应该可以使用。