使用PHP我想要计算以特定字符串开头的会话变量$ _SESSION键。
例如:
FAVORITE-LISTING-04
FAVORITE-LISTING-24
FAVORITE-LISTING-58
使用上述键,计入"最喜欢的列表 - "将返回:3
干杯
答案 0 :(得分:1)
您可以使用PHP支持的变量变量来实现此功能。但我建议改为使用双数组:
$_SESSION['FAVORITE-LISTING']['4'] = 'something';
$_SESSION['FAVORITE-LISTING']['24'] = 'something';
$_SESSION['FAVORITE-LISTING']['58'] = 'something';
count($_SESSION['FAVORITE-LISTING']);
通过这种方式,您可以更轻松地检索数据并保持井井有条。
答案 1 :(得分:1)
由于$_SESSION
是一个数组,只需循环遍历它并查看键。任何时候一个键都以你的字符串开头,你只需要再添加一个。由于您要查找字符串的开头,因此您希望strpos()
等于0,因此您需要使用===
而不是==
。
$find = 'FAVORITE-LISTING-';
$count = 0;
foreach($_SESSION as $key => $value) {
if(strpos($key, $find) === 0) {
$count++;
}
}
答案 2 :(得分:1)
这应该适合你:
<?php
session_start();
$_SESSION['FAVORITE-LISTING-04'] = "foo";
$_SESSION['FAVORITE-LISTING-24'] = "foo";
$_SESSION['FAVORITE-LISTING-58'] = "foo";
$count = substr_count(implode(array_keys($_SESSION)), "FAVORITE-LISTING-");
echo $count;
?>
输出:
3