---
title: "Funktion som returnerar ord nr x i en sträng?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/85431-funktion-som-returnerar-ord-nr-x-i-en-sträng"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "muskot"
published: "2003-09-06T19:59:30.000Z"
updated: "2003-09-06T21:09:39.000Z"
replies: 5
views: 247
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/85431-funktion-som-returnerar-ord-nr-x-i-en-sträng"
---

# Funktion som returnerar ord nr x i en sträng?

## #1 — muskot, 2003-09-06T19:59Z

Finns det någon inbyggd funktion som returnerar det ord som står på en angiven position i en sträng? Har letat och letat och letat utan resultat. 

Typ så här alltså:

```
$text = "jag heter markus";

eftersökt_funktion($text, 2); // returnerar "heter"
```

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

## #2 — Peeer, 2003-09-06T20:15Z

Re: Funktion som returnerar ord nr x i en sträng?

Ingen inbyggd vad jag vet, men något sådant här borde väl fungera?

```
function word($str,$nr)
{
$temp = explode(" ",$str);
return $temp[$nr-1];
}

$text = "jag heter markus";
word($text, 2); // returnerar "heter"
```

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

## #3 — muskot, 2003-09-06T20:23Z

Tack Peeer. 

Dock hittade jag precis [str_word_count](http://se.php.net/str_word_count) som klarade av att göra det jag ville, även om den inte fungerar som jag beskrev det. 

```
$text = "jag heter markus";
$word = str_word_count($text, 1);
echo $word[1]; // returnerar "heter"
```

(Tycker det är påfallande ofta man hittar grejerna man söker alldeles efter man ställt frågan.)

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

## #4 — Matte, 2003-09-06T20:27Z

Jag känner inte hellertill någon sådan funktion (kan finnas ändå :) ), men du skulle kunna göra något liknande detta med str_word_count:

```php
function pos_word($text, $pos) {
   $words = str_word_count($text, 1);
   if ($pos < sizeof($words) && $pos > 0) {
     return $words[$pos-1];
   } else return '';
}

$text = "jag heter markus";

echo "Ord 2 är <b>".pos_word($text, 2)."</b>";
```

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

## #5 — muskot, 2003-09-06T20:42Z

Tack även till Matte.

Men av någon anledning verkar inte ÅÄÖ fungera med str_word_count. Att lägga till följande rad högst upp löste problemen med å och ö, men ä fungerar fortfarande inte:

```
setlocale (LC_ALL, "swedish");
```

Förslag?

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

## #6 — Matte, 2003-09-06T21:09Z

Testa det här (två varianter):

```php
function pos_word_entities($text, $pos) {
   $text = html_entity_decode($text); // PHP >= version 4.3.0
   $words = preg_split("/[^\\w]+/", $text);
   if ($pos < sizeof($words) && $pos > 0) {
     return htmlentities($words[$pos-1]);
   } else return '';
}

function pos_word($text, $pos) {
   $words = preg_split("/[^\\w]+/", $text);
   if ($pos < sizeof($words) && $pos > 0) {
     return $words[$pos-1];
   } else return '';
}

// Text utan HTML-entiteter
$text = "jag heter Åke Svensson";
echo "Ord 3 är <b>".pos_word($text, 3)."</b><br>";

// Text med HTML-entiteter
$text = "jag heter &Aring;ke Svensson";
echo "Ord 3 är <b>".pos_word_entities($text, 3)."</b>";
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/85431-funktion-som-returnerar-ord-nr-x-i-en-sträng
