PHP:如何用较少的代码实现如下需求呢?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP:如何用较少的代码实现如下需求呢?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1416字,纯文字阅读大概需要3分钟。
内容图文
A-AAB-BB
C-CC
D-DD
E-EE
F-FF
G-GG
H-HH
I-II
J-JJ
转换成如下形式:
A-AA-[随机从其他不重复的4行中抽取叠加的字母]
比如:
A-AA-[CC HH II DD]
B-BB-[CC II EE FF]
回复内容:
A-AA
B-BB
C-CC
D-DD
E-EE
F-FF
G-GG
H-HH
I-II
J-JJ
转换成如下形式:
A-AA-[随机从其他不重复的4行中抽取叠加的字母]
比如:
A-AA-[CC HH II DD]
B-BB-[CC II EE FF]
$randStr = [];
for (array_rand($data, 4) => $k as $v) {
//...
$randStr[] = substr($data[$k], -2);
}
echo 'A-AA-[' . implode(' ', $randStr) . ']';
$array = array('A-AA','B-BB','C-CC','D-DD','E-EE','F-FF','G-GG','H-HH','I-II','J-JJ');
function transform(&$value,$key,$array)
{
$array_temp = $array;//复制一个数组
unset( $array_temp[$key] );//移除这个key的元素
$rand_keys = array_rand($array_temp,4);//抽出4个元素
shuffle($rand_keys);//打乱顺序
$result_str = [];
foreach ($rand_keys as $k) {
$result_str[] = substr($array_temp[$k], -2);//获取重叠字符
}
$others_str = implode(' ',$result_str); //空格分隔四个随机元素组成字符串
$value = sprintf("%s-[%s]",$value,$others_str);//整理
输出字符串
}
array_walk($array,"transform",$array);
print_r($array);
由 woody 方案改编。
$data = array(
'A-AA',
'B-BB',
'C-CC',
'D-DD',
'E-EE',
'F-FF',
'G-GG',
'H-HH',
'I-II',
'J-JJ',
);
$randStr = '';
$randArr = array_rand($data, 5);
shuffle($randArr); // 打乱数组,防止开头的那个随机不到 G H I J.
foreach ( $randArr as $k => $v ) {
$randStr .= $k == 0 ? $data[$v] . '-[' : substr($data[$v], -2) . ' ';
}
echo rtrim($randStr) . ']';
不错,学习了@!
内容总结
以上是互联网集市为您收集整理的PHP:如何用较少的代码实现如下需求呢?全部内容,希望文章能够帮你解决PHP:如何用较少的代码实现如下需求呢?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。