我有几个值存储在$ _SESSION中,以'first_name_'开头'last_name_'然后在末尾附加一个数字,加深生成的名称数。
我能够从会话中提取这些值中的每一个并添加到数组中,但是希望在嵌套数组中将名字和姓氏配对在一起。 (如果这是有道理的)
目前我有:
$users_array = array();
foreach ($_SESSION as $key => $value) {
if(strpos($key, 'first_name_') === 0) {
$users_array[] = $value;
}
if(strpos($key, 'last_name_') === 0) {
$users_array[] = $value;
}
}
这会产生一个带有var_dump:
的输出array
0 => string 'John' (length=4)
1 => string 'Smith' (length=8)
2 => string 'Jane' (length=4)
3 => string 'Doe' (length=3)
但我想要的是:
array
'user' =>
array
'first_name' => string 'John' (length=4)
'last_name' => string 'Smith' (length=5)
array
'first_name' => string 'Jane' (length=4)
'last_name' => string 'Doe' (length=5)
关于如何实现这一目标的任何建议?
答案 0 :(得分:1)
deceze在他的评论中是正确的...但是,从一维数组创建二维数组有类似问题的人,这里是一个解决方案。另请注意,PHP不保证在使用FOREACH进行迭代时顺序相同。由于这将起作用,它仍然容易出错。
$users_array = array();
foreach ($_SESSION as $key => $value) {
if(strpos($key, 'first_name_') === 0) {
$users_array[] = array();
$users_array[count($users_array)-1]['first_name'] = $value;
}
if(strpos($key, 'last_name_') === 0) {
$users_array[count($users_array)-1]['last_name'] = $value;
}
}