使用PHP将字符串转换为数组

时间:2015-08-23 09:35:08

标签: php session

我的会话变量是

$_SESSION["listofIds"]=163,164;
$_SESSION["listofVals"]=4,3;

我想选择像

这样的会话值
$_SESSION["listofIds"][0]=163;
$_SESSION["listofIds"][1]=164; 
$_SESSION["listofVals"][0]=4;
$_SESSION["listofVals"][1]=3;

我试过

echo $_SESSION["listofIds"][0]; 

然后打印'1'即第一个字符。我怎么处理这个?

另外,在为mysql查询放入while循环后,如何获得$_SESSION["listofIds"]的第一个元素和$_SESSION["listofVals"]的第一个元素。

3 个答案:

答案 0 :(得分:1)

您的会话变量似乎是字符串。使用

$IdsArr = explode(",", $_SESSION["listofIds"]);
echo $IdsArr[0];

explode将字符串拆分为","到阵列。

答案 1 :(得分:1)

$listofIds = array();
$listofIds = explode(",",$_SESSION["listofIds"]);

现在您可以使用listofIds [0]或listofIds [1]访问变量。

答案 2 :(得分:0)

首先,您应该首先从头开始定义一个数组,同时将值放在$_SESSION数组中。这是编写代码的更好方法。

无论如何,所有其他答案都说:

$listofIds = array();
$listofIds = explode(",",$_SESSION["listofIds"]);

会将您的字符串转换为数组,您将能够以不同的方式访问每个值。大多数公地:

  • 使用foreach循环
  • 获取您要使用的项目的索引。

如果要使用查询中的第一项,则应使用索引获取其值(数组从0开始),因此您的值将为$ listofids [0]。相同的逻辑将应用于其他$ _SESSION值。 编程的另一个好习惯:当您将数组值放入查询字符串时,将其分配给变量:

$id_to_search = $listofids[0];

然后将其用于查询:

$sql = "SELECT * FROM your_table WHERE id='$id'";

这会让你在单引号和双引号中省去很多头痛。