PHP:数组隔离

时间:2009-12-11 09:38:38

标签: php arrays

我有这个字符串:

type=openBook&bookid=&guid=7AD92237-D3C7-CD3E-C052-019E1EBC16B8&authorid=&uclass=2&view=

然后我想得到“=”符号后面的所有值,所以对于“type”我想得到“openBook”并把它放在一个数组中。

注意:即使它是null,它也必须添加到数组中,所以我不会松开轨道..

那我怎么能这样做。

非常感谢

3 个答案:

答案 0 :(得分:7)

我想你想要parse_str

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
?>

我不确定你的意思是什么:

  

注意:即使它为null也必须是   添加到阵列所以我不会松动   跟踪..

如果parse_str无法发挥作用,您希望发表评论,我会尽力帮助。

答案 1 :(得分:1)

你可以看一下explode();

<?php

$foo = "type=openBook&bookid=&guid=7AD92237-D3C7-CD3E-C052-019E1EBC16B8&authorid=&uclass=2&view=";

$chuncks = explode('&', $foo);

$data = array();

foreach ($chuncks as $chunck)
{
  $bar = explode('=', $chunck);
  $data[$bar[0]] = $bar[1];

}

var_dump($data);

答案 2 :(得分:-1)

$first = split("&", "type=openBook&bookid=&guid=7AD92237-D3C7-CD3E-C052-019E1EBC16B8&authorid=&uclass=2&view=");

foreach($first as $value) {
    list($key, $val) = split("=", $value);
    $arr[$key] = $val;
}

echo $arr['type'];    // openBook