---
title: "Alfabetisk lista?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/177690-alfabetisk-lista"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Guldstrand"
published: "2009-03-26T21:52:18.000Z"
updated: "2009-03-27T09:19:08.000Z"
replies: 7
views: 440
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/177690-alfabetisk-lista"
---

# Alfabetisk lista?

## #1 — Guldstrand, 2009-03-26T21:52Z

Vad är det för fel på koden nedan?
Endast "A" till "Z" visas.

```php
for ($i = 97; $i < 123; ++$i)
{
	$l = chr($i);
	$L = chr($i - 32);
	if ($l == $letter)
    print("<b>$L</b>\n");
	else
    print("<a href=?bokstav=$l><b>$L</b></a>\n");
}
```

Permalänk: https://www.webforum.nu/p/177690

## #2 — drew, 2009-03-26T22:09Z

$L är ju stor bokstav. Vad förväntar du dig att se?

Permalänk: https://www.webforum.nu/p/2176587

## #3 — Guldstrand, 2009-03-26T22:12Z

> **[drew skrev:](https://www.webforum.nu/p/1461717)**
>
> $L är ju stor bokstav. Vad förväntar du dig att se?

Eh.. ja!? 
Jag vill givetvis kunna se ÅÄÖ också, (inte bara a-z).

Permalänk: https://www.webforum.nu/p/2176588

## #4 — Peter S, 2009-03-26T22:53Z

97-122 samt (97-32)-(122-32) är ascii-koderna för a-z och A-Z. Att åäö inte finns i direkt anslutning beror på att ascii inte är designat efter det svenska alfabetet. ÅÄÖ hittar du i en utökad ascii-tabell, se ex. <http://www.asciitable.com/>.

Permalänk: https://www.webforum.nu/p/2176589

## #5 — pulse, 2009-03-26T23:17Z

Kanske:

```php
<?php
$param = "å";
$letters = preg_split("//u", "abcdefghijklmnopqrstuvwxyzåäö", 0, PREG_SPLIT_NO_EMPTY);
foreach($letters as $letter){
    $ucase = mb_strtoupper($letter, "UTF-8");
    if($letter == $param){
        printf("<b>%s</b>" . PHP_EOL, $ucase);    
    }
    else{
        printf("<a href=\"?bokstav=%s\"><b>%s</b></a>" . PHP_EOL, $letter, $ucase);
    }
}
```

Permalänk: https://www.webforum.nu/p/2176591

## #6 — Guldstrand, 2009-03-27T04:56Z

Hur löser jag det enklast om jag vill använda mig av den befintliga koden?

```php
if ($letter == "" || strpos("abcdefghijklmnopqrstuvwxyzåäö", $letter) === false)
    $letter = "a";

for ($i = 97; $i < 123; ++$i)
{
	$l = chr($i);
	$L = chr($i - 32);
	if ($l == $letter)
    print("<b>$L</b>\n");
	else
    print("<a href=?bokstav=$l><b>$L</b></a>\n");
}
```

Permalänk: https://www.webforum.nu/p/2176597

## #7 — drew, 2009-03-27T09:12Z

Du byter ut if-satsen. Och använd inte dubbelflärpar " om du inte måste, enkelflärpar ' körs snabbare.

```php
for ($i = 97; $i < 123; ++$i)
{
	$l = chr($i);
	$L = chr($i - 32);
    if($letter != '' && strpos('abcdefghijklmnopqrstuvwxyzåäö', $letter) !== false)
    print("<b>$L</b>\n");
	else
    print("<a href=?bokstav=$l><b>$L</b></a>\n");
}
```

Permalänk: https://www.webforum.nu/p/2176613

## #8 — pulse, 2009-03-27T09:19Z

Fast varför vill du inte använda koden jag postade? Den ger samma resultat som din fast den är enklare uppbyggd och du slipper göra massa undantag för att den ska funka med åäö.

Permalänk: https://www.webforum.nu/p/2176615

---

Tråden på webben: https://www.webforum.nu/amne/php/177690-alfabetisk-lista
