1
그래서 객체에 저장된 다차원 배열을 가지고 있습니다. 이 배열에 키를 추가하고 싶습니다.다차원 배열을 객체 변수로 저장하고 배열에 키를 추가합니다.
$object->pathsArray = array(
"key1" => array('path' => '/some/path/to/some/file.php', 'action' => 'index'),
"key2" => array('path' => '/some/path/to/some/class.php', 'action' => 'method2')
);
그리고 여기에 내가 일하는 것이 가정하지만 무슨 짓을했는지 : 여기
내가 가진 무엇
$object->pathsArray['key3'] = array('path' => '/some/path/to/some/method/or/script.php', 'action' => 'method3');
내 첫 번째 해결 방법 :
$newPathsArray = array("key3" => array('path' => '/some/path/to/some/method/or/script.php', 'action' => 'method3'));
$object->pathsArray = array_merge($object->pathsArray, $newPathsArray);
작동해야3210 다른 해결 방법 :
$tempPathsArray = $object->pathsArray;
$tempPathsArray['key3'] = array('path' => '/some/path/to/some/method/or/script.php', 'action' => 'method3');
$object->pathsArray = $tempPathsArray;
그래서 내 질문 :은 간단한 구문이 있나요 (예 : 한 줄 솔루션) 또는 내가 임시 가져올 수 밖에입니다. 변수에 추가 한 다음 개체에 값을 병합/다시 할당 하시겠습니까?
첫 번째 버전이 작동하지 않는다면 어떤 방법으로 실패 했습니까? 'pathsArray'는 단순히 변경되지 않았습니까? 그렇다면 개체에 사용자가 요청할 때마다 실제 저장된 배열의 * 복사본 *을 제공하는 일종의 사용자 지정 가져 오기/설정 논리가 있음을 알 수 있습니다. 따라서 실제로 변경할 수있는 유일한 방법은 설정 논리, 전체 배열을 덮어 씀). 그렇다면 첫 번째 해결 방법은 아마도 가장 간단한 방법 일 것입니다. – Amber
@Tom 처음에'key1'과'key2' 키를 어떻게 설정 했습니까? 'pathsArray' 속성이 private/protected로 정의되어 있습니까? –
@Amber, 나는 지금 완벽하게 이해되는 get/set 논리를 고려하지 않았습니다. – Tom