【发布时间】:2019-12-06 08:47:53
【问题描述】:
我有这个变量$variable = "own=1,contract_start=1";,我想找到这个变量一个数组。
数组名称是 $variables 这是我的数组:
Array
(
[own] => Array
(
[type] => bool
[value] => 0
)
[contr_name] => Array
(
[type] => bool
[value] => 0
)
[all_votes] => Array
(
[type] => int
[value] => 0
)
[contract_start] => Array
(
[type] => bool
[value] => 0
)
[contract_end] => Array
(
[type] => bool
[value] => 0
)
[T] => Array
(
[type] => clock
[value] =>
)
[a] => Array
(
[type] => int
[value] => 1
)
[candi_ID] => Array
(
[type] => int
[value] => 1
)
[voter_ID] => Array
(
[type] => int
[value] => 1
)
[] => Array
(
[type] =>
[value] =>
)
)
如果值不等于现有值一个数组,所以我想用变量值更新值。 这是我的代码:
$variable = "own=1,contract_start=1";
function updateTheValue($variables,$variable) {
// Split variable looking for into name and value
$vars = explode(",", $variable);
$match = false;
foreach ($vars as $var){
$expbyequal = explode("=", $var);
// If this variable is set
if ( isset($variables [trim($expbyequal[0])]) ) {
// Compare value with stored value
if ( $variables [trim($expbyequal[0])]['value'] == trim($expbyequal[1]) ) {
$match = true;
}else{
$variables[trim($expbyequal[0])] = ["value" => trim($expbyequal[1])]);
$match = false;
}
}
}
return $match;
}
$testing = updateTheValue($variables,$variable);
任何想法都会被认可。
【问题讨论】:
-
您可以使用 in_array 函数检查数组值是否存在
-
更改返回 $match;返回 $variables;
-
如果你打算在这方面做更多的工作,我建议你研究一个更多的OO概念。您可以为不同的数据类型定义类,然后这将使值的验证成为代码的核心部分(您目前不做任何事情)。您还可以在开发需求时添加更复杂的类型。