当标签的值与键完全相同时,如何将键添加到标签。。。。PHP
用户通过其他参数为label和key提供输入(key和label只是示例) 我只想在标签上添加一次键,这意味着只在第一次执行时(第一次按下按钮-但之后每次单击按钮时都不应添加;每个按钮上都加载php文件),之后应该避免添加(prepend)(Key\u valuelabel\u value) 所以,我现有的代码将键添加到标签中,但若用户提供的标签的值与键类似,则此操作将失败 例如:-当标签的值与键完全相同时,如何将键添加到标签。。。。PHP,php,logic,Php,Logic,用户通过其他参数为label和key提供输入(key和label只是示例) 我只想在标签上添加一次键,这意味着只在第一次执行时(第一次按下按钮-但之后每次单击按钮时都不应添加;每个按钮上都加载php文件),之后应该避免添加(prepend)(Key\u valuelabel\u value) 所以,我现有的代码将键添加到标签中,但若用户提供的标签的值与键类似,则此操作将失败 例如:-key='123'和label='123 test',然后我的条件失败 有人建议我怎么处理这个案子吗 这是php,
key='123'和label='123 test',然后我的条件失败
有人建议我怎么处理这个案子吗
这是php,每次重新加载时,计数器也会失败。我不想问您为什么需要它。希望此代码可以帮助:
function isKeyInLabel($key, $label) {
$keys = explode(' ', $label);
// remove last element (it's a label)
array_pop($keys);
return in_array($key, $keys);
}
用法示例:
// this condition will returns true
if (isKeyInLabel('456', '123 456 789 test')) {
// already exists
}
注意:当然不能将键或标签与空格一起使用
UPD:
您将需要另一个变量,例如:
// of course you need a place where you can save this array
// as possible place you can use session or cookies, or
// whatever you want, here is session usage example
session_start();
// this hash will have keys that already executed
$execKeys = isset($_SESSION['execKeys'])?$_SESSION['execKeys']:array();
// assuming that $execKeys[$label] is an array
if (isset($execKeys[$label]) && in_array($key, $execKeys[$label])) {
// code already executed
} else {
$execKeys[$label] = isset($execKeys[$label])?$execKeys[$label]:array();
$execKeys[$label][] = $key;
// and if you still need it
$label = $key.' '.$label;
}
$_SESSION['execKeys'] = $execKeys;
您的问题没有任何意义,请编辑它
,但如果用户提供的标签的值类似于键
,则此操作将失败-如我所见,您可以随时添加不同的值,但只能是唯一的?i、 我们将有这样的东西:label='123 456 789 test'?是的,对于这个例子,它也失败了,因为label已经以键值(123)开始。最初,它会继续将键值添加到标签,但在该错误之后,我添加了一些条件来处理这种情况,如标签不包含label-add、最后包含或中间包含-add(使用strpos),但当标签在开始时已经具有类似于键的值时,它会失败。这就是为什么要求提供任何建议这只需给我标签值中的键值就可以了。但我想,代码应该知道,若它是第一次执行,那个么密钥应该添加到标签fiels中,否则就不会。当我按下按钮时,每次都会加载php文件,这就是为什么只有在第一次单击时,键值才应该添加到label Value.mmm。。。如果键不在标签中,这意味着第一次执行,我想,那么您应该在标签中添加键,下次分析标签时,它的值应该是“$key label”,ofc这将不是第一次执行。。我是对的吗?是的,你是对的,我知道这是一个例子,但我说的是当$label已经包含$key时,它是第一次执行,然后它应该添加到$label;但是代码如何知道这是第一次执行。这就是我要问的问题如果$label
已经包含了$key
,那么如果没有其他变量,代码就无法使用当前的检测方法检测第一次执行(该$key
)。