我想在数字和字母之间建立概率间距,如上例所示:
请注意,我有两个字符串,每个字符串有3个字母:
$string1 = "123";
$string2 = "456";
//Result must be:
Line1: 1 2 3
Line2: 4 5 6
--------
$string1 = "456";
$string2 = "891";
//Result must be:
Line1: 46 5
Line2: 8 91
.....
如何使用PHP以编程方式执行此操作并返回此结果(使用rand函数)?
提前谢谢。
答案 0 :(得分:0)
随机化第一行,将第一行的值的位置作为种子,并将其作为空格用于第二个字符串。示例:(我只使用了子弹而不是空格)
// handle first line
$string1 = "123";
// create an array with the characters with spaces
$string1 = array_merge(str_split($string1), array_fill(0, 3, '•'));
shuffle($string1); // shuffle them first
// determine and sace the keys of the non empty characters
$empty_keys = array_keys($string1, '•');
$values = array_diff(array_keys($string1), $empty_keys);
$line1 = implode('', $string1);
// second line
$string2 = "456";
$temp = str_split($string2); // create a temporary holder
for($i = 0; $i < 6; $i++) {
if(isset($values[$i])) {
$line2[$i] = '•';
} else {
$line2[$i] = array_pop($temp);
}
}
$line2 = implode('', $line2);
echo $line1 . '<br/>' . $line2;