当 label 的值与 key 完全相同时,如何将 key 添加到 label ? ....PHP
How to add key to label when label has value exactly same to key ? ....PHP
用户也为标签和键输入了其他参数(键和标签只是示例)
我只想将键添加到标签一次意味着仅在第一次执行时(第一次按下按钮 - 但之后在每个按钮上单击它不应该添加; php 每个按钮上加载文件)之后应该避免添加(前置)(key_valuelabel_value)
所以我现有的代码将键添加到标签但是当用户提供具有类似于键的值的标签时这会失败。
例如:- key='123' and label='123 test' then my condition fails
.
所以有人建议我如何处理这个案子?
这是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
}
注意:当然你不能使用带空格的键或标签
更新:
您将需要另一个变量,例如:
// 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;
用户也为标签和键输入了其他参数(键和标签只是示例) 我只想将键添加到标签一次意味着仅在第一次执行时(第一次按下按钮 - 但之后在每个按钮上单击它不应该添加; php 每个按钮上加载文件)之后应该避免添加(前置)(key_valuelabel_value) 所以我现有的代码将键添加到标签但是当用户提供具有类似于键的值的标签时这会失败。
例如:- key='123' and label='123 test' then my condition fails
.
所以有人建议我如何处理这个案子?
这是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
}
注意:当然你不能使用带空格的键或标签
更新: 您将需要另一个变量,例如:
// 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;