我的会话变量是
$_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"]
的第一个元素。
答案 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"]);
会将您的字符串转换为数组,您将能够以不同的方式访问每个值。大多数公地:
如果要使用查询中的第一项,则应使用索引获取其值(数组从0开始),因此您的值将为$ listofids [0]。相同的逻辑将应用于其他$ _SESSION值。 编程的另一个好习惯:当您将数组值放入查询字符串时,将其分配给变量:
$id_to_search = $listofids[0];
然后将其用于查询:
$sql = "SELECT * FROM your_table WHERE id='$id'";
这会让你在单引号和双引号中省去很多头痛。