Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Alfabet w php
gcdreak
post
Post #1





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


Witam!
Chcę wypisać kolejno litery alfabetu. Spróbowałem z użyciem pętli for:
Kod
<?php
       for($a='a';$a<='z';$a++)
         {
         echo $a.', ';
   ?>

Efekt wygląda tak:
Cytat
a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, cl, cm, cn, co, cp, cq, cr, cs, ct, cu, cv, cw, cx, cy, cz, da, db, dc, dd, de, df, dg, dh, di, dj, dk, dl, dm, dn, do, dp, dq, dr, ds, dt, du, dv, dw, dx, dy, dz, ea, eb, ec, ed, ee, ef, eg, eh, ei, ej, ek, el, em, en, eo, ep, eq, er, es, et, eu, ev, ew, ex, ey, ez, fa, fb, fc, fd, fe, ff, fg, fh, fi, fj, fk, fl, fm, fn, fo, fp, fq, fr, fs, ft, fu, fv, fw, fx, fy, fz, ga, gb, gc, gd, ge, gf, gg, gh, gi, gj, gk, gl, gm, gn, go, gp, gq, gr, gs, gt, gu, gv, gw, gx, gy, gz, ha, hb, hc, hd, he, hf, hg, hh, hi, hj, hk, hl, hm, hn, ho, hp, hq, hr, hs, ht, hu, hv, hw, hx, hy, hz, ia, ib, ic, id, ie, if, ig, ih, ii, ij, ik, il, im, in, io, ip, iq, ir, is, it, iu, iv, iw, ix, iy, iz, ja, jb, jc, jd, je, jf, jg, jh, ji, jj, jk, jl, jm, jn, jo, jp, jq, jr, js, jt, ju, jv, jw, jx, jy, jz, ka, kb, kc, kd, ke, kf, kg, kh, ki, kj, kk, kl, km, kn, ko, kp, kq, kr, ks, kt, ku, kv, kw, kx, ky, kz, la, lb, lc, ld, le, lf, lg, lh, li, lj, lk, ll, lm, ln, lo, lp, lq, lr, ls, lt, lu, lv, lw, lx, ly, lz, ma, mb, mc, md, me, mf, mg, mh, mi, mj, mk, ml, mm, mn, mo, mp, mq, mr, ms, mt, mu, mv, mw, mx, my, mz, na, nb, nc, nd, ne, nf, ng, nh, ni, nj, nk, nl, nm, nn, no, np, nq, nr, ns, nt, nu, nv, nw, nx, ny, nz, oa, ob, oc, od, oe, of, og, oh, oi, oj, ok, ol, om, on, oo, op, oq, or, os, ot, ou, ov, ow, ox, oy, oz, pa, pb, pc, pd, pe, pf, pg, ph, pi, pj, pk, pl, pm, pn, po, pp, pq, pr, ps, pt, pu, pv, pw, px, py, pz, qa, qb, qc, qd, qe, qf, qg, qh, qi, qj, qk, ql, qm, qn, qo, qp, qq, qr, qs, qt, qu, qv, qw, qx, qy, qz, ra, rb, rc, rd, re, rf, rg, rh, ri, rj, rk, rl, rm, rn, ro, rp, rq, rr, rs, rt, ru, rv, rw, rx, ry, rz, sa, sb, sc, sd, se, sf, sg, sh, si, sj, sk, sl, sm, sn, so, sp, sq, sr, ss, st, su, sv, sw, sx, sy, sz, ta, tb, tc, td, te, tf, tg, th, ti, tj, tk, tl, tm, tn, to, tp, tq, tr, ts, tt, tu, tv, tw, tx, ty, tz, ua, ub, uc, ud, ue, uf, ug, uh, ui, uj, uk, ul, um, un, uo, up, uq, ur, us, ut, uu, uv, uw, ux, uy, uz, va, vb, vc, vd, ve, vf, vg, vh, vi, vj, vk, vl, vm, vn, vo, vp, vq, vr, vs, vt, vu, vv, vw, vx, vy, vz, wa, wb, wc, wd, we, wf, wg, wh, wi, wj, wk, wl, wm, wn, wo, wp, wq, wr, ws, wt, wu, wv, ww, wx, wy, wz, xa, xb, xc, (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) , xe, xf, xg, xh, xi, xj, xk, xl, xm, xn, xo, xp, xq, xr, xs, xt, xu, xv, xw, xx, xy, xz, ya, yb, yc, yd, ye, yf, yg, yh, yi, yj, yk, yl, ym, yn, yo, yp, yq, yr, ys, yt, yu, yv, yw, yx, yy, yz,

Dlaczego tak się dzieję? Co zrobić, aby litery wyświetliły się od a do z?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Doraźnie można pomóc tak:
  1. <?php
  2. for($a='a';$a!='aa';$a++) {
  3.         echo $a.', ';
  4.        }
  5. ?>


Ale lepiej po prostu zadeklarować tablicę z alfabetem, a później pętlą przejechać po jej elementach (zamiast cudować z dodawaniem liter)

  1. <?php
  2.  
  3. $tab = array('a','b','c','d'); //i tak dalej
  4.  
  5. for ($i=0, $b=count($tab); $i<$b; $i++)
  6.    echo $tab[$i].', ';
  7.  
  8. ?>
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(l0ud @ 2.01.2009, 16:31:49 ) *
  1. <?php
  2. $tab = array('a','b','c','d'); //i tak dalej
  3. ?>

Nie prościej range" title="Zobacz w manualu PHP" target="_manual?
Go to the top of the page
+Quote Post
gcdreak
post
Post #4





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


Zrobiłem coś takiego
Kod
for($x=97;$x<123;$x++)
          echo chr($x).'  ';

A teraz nie wiem jak wynik tej pętli pobrać do tablicy?

Ten post edytował gcdreak 2.01.2009, 20:29:08
Go to the top of the page
+Quote Post
atomek4
post
Post #5





Grupa: Zarejestrowani
Postów: 179
Pomógł: 1
Dołączył: 8.03.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


  1. <?php
  2. for($x=97;$x<123;$x++)
  3. {
  4.      $tab[] = chr($x);
  5. }
  6. ?>


Ten post edytował atomek4 3.01.2009, 15:38:48
Go to the top of the page
+Quote Post
flashdev
post
Post #6





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(gcdreak @ 2.01.2009, 14:19:54 ) *
Dlaczego tak się dzieję?


Kod
<?php
for($a='a';$a<='z';$a++){
echo ord($a)." ".$a.($a<"z" ? " less" : "").($a=="z" ? " equal" : "").'<br />';
}

echo 'az' > 'abb';
?>


Napisałem coś takiego i wynika z tego, że w momencie porównywania stringów są porównywane kolejne pojedyńcze znaki od lewej do prawej i gdy tylko w jednym z nich warunek jest spełniony dalej już nie jest sprawdzany.
Jedyna dziwna rzecz tutaj (w php) to to że warunek: 'z'+1 == 'aa' jest prawdziwy (inaczej niż np. w c++). Po znaku 'z' w kodzie ascii występuje jakiś inny znak nie alfanumeryczny i pewnie to Cie wprowadziło w błąd.
Go to the top of the page
+Quote Post
piotrooo89
post
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ale powiedzcie mi dlaczego używacie takich mało wydajnych pętli skoro możecie użyć gotowej funkcji php do wyświetlenia?
Go to the top of the page
+Quote Post
gcdreak
post
Post #8





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


Pokombinowałem jeszcze trochę i do zapisania danych w tablicy użyłem bętli do..while i wszytko ładnie działa.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 18:59