Heim > Backend-Entwicklung > PHP-Tutorial > PHP:如何用较少的代码实现如下需求呢?

PHP:如何用较少的代码实现如下需求呢?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-06 20:45:01
Original
1109 Leute haben es durchsucht

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]

回复内容:

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) . ']';\
Nach dem Login kopieren

<code>$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);
</code>
Nach dem Login kopieren

由 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) . ']';
Nach dem Login kopieren

不错,学习了@!

Verwandte Etiketten:
php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage