---
title: "Fixa till sökargument"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/89306-fixa-till-sökargument"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Nexus86"
published: "2003-10-23T11:32:25.000Z"
updated: "2003-10-23T11:32:25.000Z"
replies: 0
views: 1486
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/89306-fixa-till-sökargument"
---

# Fixa till sökargument

## #1 — Nexus86, 2003-10-23T11:32Z

Låt säga att man programmerar en sökfunktion och vill att man ska kunna söka efter fraser som omges av citattecken medan man vill att alla andra ord får stå precis var de vill. Då kan denna funktion komma till användning. Det den gör är att dela upp strängen till en array. D.v.s texten "en hel mening" några ord resulterar i:

```
[red]Array
(
    [0] => en hel mening
    [1] => några
    [2] => ord
)[/red]
```

Här är funktionen:

```php
function stringtoarray($str) {
    $tarray = explode(' ', $str);
    $array = array();
    $opencitat = 0;
    $insertvalue = '';

    foreach ($tarray as $value) {
        if (substr($value, 0, 1) == '"') {
            if ($opencitat) {
                $array[count($array)] = trim($insertvalue);
                $insertvalue = '';
                $opencitat = 0;
            } else {
                $insertvalue .= trim(substr($value, 1, strlen($value)));
                $opencitat = 1;
            }
        } elseif (substr($value, strlen($value) - 1, 1) == '"') {
            if ($opencitat) {
                $array[count($array)] = trim("$insertvalue " . substr($value, 0, strlen($value) - 1));
                $insertvalue = '';
                $opencitat = 0;
            } else {
                $array[count($array)] = trim(substr($value, 0, strlen($value) - 1));
                $opencitat = 1;
            }
        } else {
            if ($opencitat) 
                $insertvalue .= " $value";
            } else {
                $array[count($array)] = trim($value);
            }
        
    }

    if ($opencitat) {
        $array[count($array)] = trim($insertvalue);
    }

    return $array;
}
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/89306-fixa-till-sökargument
