【发布时间】:2014-06-02 16:22:46
【问题描述】:
我有一个类似的数组:
array(
'username' => array(
'required' => true,
'min' => 5,
'max' => 20,
'unique' => 'users',
'name' => 'Username'
)
);
这个数组进入一个类似的函数(这不是完整的函数):
//$source = $_POST
public function validate($source, $items = array()) {
foreach($items as $item => $rules) {
foreach($rules as $rule => $rule_value) {
//db->sanitize = mysqli_real_escape_string()
$value = $this->db->sanitize($source[$item]);
if($rule === 'required' && empty($value)) {
//The problem is here with $rule['name']
$this->addError($rule['name'].' is empty');
}
}
}
}
所以我想使用数组中的'name' 键来显示用户友好的输入字段名称,但它返回的只是:警告:非法字符串偏移 'name' in
【问题讨论】:
-
$rule和$rule_value都是字符串。它们是您的$rules数组的键/值(分别)。我猜你想要$rules['name']。 -
@RocketHazmat 感谢您的回答解决了这个问题。非常愚蠢,我无法想出我自己的想法:P
-
我们都会时不时犯一些愚蠢的错误 :)
-
@RocketHazmat 如果您将其作为答案发布,我可以在解决后关闭问题
标签: php multidimensional-array foreach