$kel = array (); for ($i='a';$i!='z';$i++) { echo $i."\n"; array_push ($kel, $i); } sort ($kel); $indeksrand = rand (0,count($kel)-1); echo strtoupper( $kel [$indeksrand] ); maka akan keluar a, b , c, d.. y (TIDAK SAMPAI Z) dan satu huruf ACAK jika saya ubah menjadi $kel = array (); for ($i='a';$i<='z';$i++) { echo $i."\n"; array_push ($kel, $i); } sort ($kel); $indeksrand = rand (0,count($kel)-1); echo strtoupper( $kel [$indeksrand] ); perhatian: yang saya ubah adalah != 'z' menjadi <= 'z' makan hasilnya akan mengeluarkan a, b, ... z, aa, ab, ac ... ba, bb, ... yz (TIDAK SAMPAI ZZ) mengapa demikian ?
1 jempol
ganis
198
841
·
9 tahun, 4 bulan yang lalu
·
0 jempol
Menarik sekali..! jempol buat anda...!! 'z' jika ditambah dengan satu maka akan menjadi 'aa', lengkapnya lihat -> http://php.net/manual/en/languag... kenapa 'z' maupun 'zz' tidak dicetak? karena saat $i = 'z' dan dilakukan perbandingan $i != 'z', for langsung exit karena itu false. dan saat $i = 'za' (setelah 'yz' itu adalah 'za') dan dilakukan perbandingan $i <= 'z', maka langsung false karena 'za' lebih besar dibandingkan 'z'. Bingung? Lihat saja cara sorting di folder di komputer anda, jika ada file yang huruf pertamanya sama, maka akan dibandingkan huruf berikutnya. bagaimana caranya untuk mencetak sampai 'z' dan 'zz'? for ($i='a';strlen($i)<2;$i++) { echo $i; } for ($i='a';strlen($i)<3;$i++) { echo $i; } perhatikan di CodeSaya output dipotong jika terlalu banyak. Gunakan http://sandbox.onlinephpfunction... untuk mendapatkan output yang lengkap.