Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Alfabet w php
Forum PHP.pl > Forum > Przedszkole
gcdreak
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, 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?
l0ud
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. ?>
phpion
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?
gcdreak
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?
atomek4
  1. <?php
  2. for($x=97;$x<123;$x++)
  3. {
  4.      $tab[] = chr($x);
  5. }
  6. ?>
flashdev
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.
piotrooo89
ale powiedzcie mi dlaczego używacie takich mało wydajnych pętli skoro możecie użyć gotowej funkcji php do wyświetlenia?
gcdreak
Pokombinowałem jeszcze trochę i do zapisania danych w tablicy użyłem bętli do..while i wszytko ładnie działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.