我正在使用Cakephp并尝试使用一些复选框自定义分页器结果。我是这样的URL传递参数
"http://localhost/myproject2/browses/index/page:2/b.sonic:1/b.hayate:7/b.nouvo:2/b.others:-1/b.all:-2"
和cakephp将URL翻译为像这样的数组
Array
(
[page] => 2
[b.sonic] => 1
[b.hayate] => 7
[b.nouvo] => 2
[b.others] => -1
[b.all] => -2
)
其他时间我在没有勾选任何复选框的情况下传递参数。
“HTTP://本地主机/ myproject2 /浏览/索引/页:2”
和cakephp将URL翻译为像这样的数组
Array
(
[page] => 2
)
如何简单检查[b。????]是否可用?我不能使用!empty()函数,因为数组[页面]正在上路。
答案 0 :(得分:4)
如果要检查是否存在特定项目,可以使用以下任一项:
但是如果你想检查是否至少有一个项目的密钥以b.
开头,你将没有多少选择:你必须遍历数组,测试每个密钥。
可能的解决方案可能如下所示:
$array = array(
'page' => 'plop',
'b.test' => 150,
'b.glop' => 'huhu',
);
$found_item_b = false;
foreach (array_keys($array) as $key) {
if (strpos($key, 'b.') === 0) {
$found_item_b = true;
break;
}
}
if ($found_item_b) {
echo "there is at least one b.";
}
另一个(可能更有趣,但不一定更有效^^)方式是获取具有以b开头的键的项目数组。并在该数组上使用count()
:
$array_b = array_filter(array_keys($array), function ($key) {
if (strpos($key, 'b.') === 0) {
return true;
}
return false;
});
echo count($array_b);
答案 1 :(得分:3)
如果页面总是在那里,你可以简单地计算一下。
if (count($params) == 1) {
echo "There's stuff other than page!";
}
你可能更具体,检查页面就在那里,计数是一个。
答案 2 :(得分:1)
我认为this正是您所寻找的,isset
功能,所以您可以像...一样使用它...
if(isset(Array[b.sonic]))
{
//Code here
}