2014-04-15 2 views
0

$_errors 배열의 연관 이름을 가져 오는 데 문제가 있습니다.다차원 배열에 연관 배열을 추가하는 방법

Array 
(
    [0] => Array 
     (
      [password] => required 
     ) 
    [1] => Array 
     (
      [firstname] => required 
     ) 
) 

그러나 나는 그것을 할 필요가 : 나는 $_errorsprint_r()을 수행 할 때

$item1 = 'password'; 
$item2 = 'firstname'; 

$this->addError(array($item1 => 'required')) 
$this->addError(array($item2 => 'required')) 

private function addError($error) { 
    $this->_errors[] = $error; 
} 

public function error($item) { 
    return array_search($item, $this->_errors); 
} 

내가 얻을

Array 
(
    [password] => required 
    [firstname] => required 
) 

그래서 나는 그렇게 $this->_errors['password'];

처럼 '비밀번호'를 호출 할 수 있습니다

답변

2

그에 따라 기능을 변경하면됩니다.

private function addError($element, $error) { 
    $this->_errors[$element] = $error; 
} 

$this->addError($item1, 'required'); 
$this->addError($item2, 'required'); 

물론이 구성표는 동일한 요소에 대한 여러 오류를 동시에 추적하는 것을 허용하지 않습니다. 그렇게 할 필요가 있다면 원하는 결과를 재고해야합니다.

1

list() 구문을 사용하여 배열을 키 - 값 쌍으로 분리 한 다음 배열 변수 $this->errors[]에 종속시킵니다.

private function addError($error) { 
    list($a,$b) = each($error); //<--------- Add the list() here 
    $this->_errors[$a] = $b; //<--------- Map those variables to your array 
} 

private function addError($error) { 
    $this->_errors[] = $error; 
} 

관련 문제