$this->session->unset_userdata('current_page_'.$pagenumber);
通过使用此代码,我正在为每个页码从 session 中取消设置数据,但问题是在某些时候我不知道 session 中存在多少页数据,例如:
$this->session->unset_userdata('current_page_'.1);
$this->session->unset_userdata('current_page_'.2);
$this->session->unset_userdata('current_page_'.3);
$this->session->unset_userdata('current_page_'.4);
.
.
.
$this->session->unset_userdata('current_page_'.?????);
是否有任何方法可以取消设置 session 中的数据,其中键为“current_page_%” 提前致谢。
最佳答案
您可以尝试搜索 session 的首字母(即current_page_
)并相应地取消设置。
<?php
function startsWith($haystack, $needle) {
// search backwards starting from haystack length characters from the end
return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== FALSE;
}
foreach($this->session->all_userdata() as $key => $value)
{
if(startsWith($key, 'current_page_'))
$this->session->unset_userdata($key);
}
例如:
<?php
function startsWith($haystack, $needle) {
// search backwards starting from haystack length characters from the end
return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== FALSE;
}
$session = array(
'current_page_12' => 'abc',
'current_page_qw1' => 'xyz',
'hello' => 'world',
'current_page_23d' => 'mno',
'example' => '112'
);
foreach($session as $key => $value)
{
if(startsWith($key, 'current_page_'))
unset($session[$key]);
}
print_r($session);
输出:
Array
(
[hello] => world
[example] => 112
)
关于php - 如何在 Codeigniter 中按页码取消设置 session 数据最多 n 页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28556717/