按表达式排列

时间:2013-12-22 20:27:47

标签: php arrays

在php中我有以下变量来自url:

$data = "data_id=value1/config/value2/config/value3";

它始终采用以下格式:

  • data_id =要参数的第一个值

  • / config / - >这是一种参数选项卡

  • 第二个参数+ / config / +等...

我希望将这些值插入到数组中,即会发生以下情况:

  • Wrath php获取变量$data,会捕获第一个参数,在这种情况下,例如value1(将在data_id之后)vector 1并将其作为/ config /插入数组中,在value 2之后不久,并确认它是一个分隔符,从而使 $data = "data_id =fish/config/horse/config/car"; 进入并进入数组,直到结束为止。

示例:

array 
{
    [0] -> fish

    [1] -> horse

    [2] -> Car
}

数组如下所示:

{{1}}

有人能帮助我吗?

3 个答案:

答案 0 :(得分:2)

假设data_id是一个GET变量,你可以这样做。

$data = $_GET['data_id']

$myArray = explode('/config/', $data);

explode() documentation

答案 1 :(得分:0)

<?php

$data = 'data_id=value1/config/value2/config/value3';
list($name, $value) = explode('=', $data, 2);

$result = explode('/config/', $value);
print_r($result);

Example

答案 2 :(得分:0)

如果整个内容都是字符串,您可以使用strpos获取=字符的位置,并使用substr将其删除。然后简单地使用php explode爆炸整个事物。

$data = "data_id =fish/config/horse/config/car";
$data = explode( "/config/", substr( $data, strpos( $data, '=' )+1 ) );

将导致:

array(3) {
  [0]=>
   string(4) "fish"
  [1]=>
   string(5) "horse"
  [2]=>
   string(3) "car"
}

strpos()

substr()

explode()