2010-12-16 6 views
0

일부 배열이 들어있는 PHP 파일이 있습니다. 이 배열 중 하나를 수정하여 파일에 다시 쓰려고합니다. 예 : 파일 test.php이 내용을 가지고 말할 -파일의 배열 값을 수정하십시오.

<?php 
$arr1 = array("a"=>"b", "c" =>"d", "e"=>"f"); 
$arr2 = array("a2" => "b2", "c2" => "d2"); 

내가 배열은 미리 파일에 존재 모르겠어요 - 그 test.php 지금처럼 보인다 있도록

<?php 
$arr1 = array("a"=>"b", "c" =>"d"); 
$arr2 = array("a2" => "b2", "c2" => "d2"); 

내가 $ arr1을 변경하고 싶습니다.

편집 : 배열에 변수를 추가하지 않고 다른 키 값 쌍만 추가하고 있습니다. 문제는 배열이 더 많은 배열을 가진 파일의 일부라는 점입니다. 파일에 하나의 배열 만있는 경우이 작업을 수행 할 수 있지만 여러 배열을 사용하여이 작업을 수행 할 수 있는지 알고 싶습니다. 당신은 또 다른 "글로벌"배열을 소개 할 수

+0

질문에서 귀하의 상황을 이해하기 어렵습니다. 첫 번째 배열의 끝 부분에 알려지지 않은 변수를 추가하려고합니까? 또는 두 번째 변경 사항을 기반으로 첫 번째 배열의 내용을 확인하려고합니까? 스크립트 목표의 맥락이 도움이된다면, 성취하고자하는 것을 명확히하십시오. – DeaconDesperado

+0

질문을 이해할 수 없습니다. 내 질문에, 그것은 매우 명확한 두 번째 배열에 값 (변수가 아닌) 추가하려고합니다. 나는 혼란이나 downvote 여기에 어떤 이유를 볼 수 없습니다. – pinaki

+0

그냥 명확히하기 위해, 나는 downvote을 발행하지 않았다. 나는 당신이이 다른 파일에 어떻게 접근하고 있었는지에 대해 확신하지 못했습니다. 포함되었거나 원격으로 읽히고 있습니까? – DeaconDesperado

답변

1

기능 내에있는 경우 (즉, 전체 범위가 아닌 경우) get_defined_vars()을 선택하는 것이 좋습니다. 닫힌 범위에 파일을 포함시키고 키를 반환하여 파일의 모든 변수 이름을 가져와야합니다.

+0

정확하게 필요한 .. .. 감사합니다 .. – pinaki

2

파일을 읽을 때 당신은 "글로벌"배열을 그래서

$arr = array('arr1' => array("a"=>"b", "c" =>"d"), 'arr2' =>("a2" => "b2", "c2" => "d2")); 

serialize

$serArr = serialize($arr); 
//write to file here 

, 단지 unserialize의 내용이 하위의로 -arrays, 필요한 값을 수정하고, 직렬화하고 다시 작성합니다.

큰 배열을 쓸 때 큰 성능 문제가 될 수 있습니다.

+0

+1 .. 방법이 좋지만 문제는 다른 배열을 추가하기 위해 파일 내용을 변경할 수 없다는 것입니다 (그렇지 않으면 배열 자체에 값을 추가하는 것이 매우 어려울 것입니다). 거기에 파일에서 모든 배열 값을 검색하고 그들을 변경하고 다시 쓸 수있는 방법은 무엇입니까? – pinaki

+0

"다른 배열을 추가하기 위해 파일 내용을 변경할 수 없습니다"라는 것을 어떻게 의미합니까? – DrColossos

+0

'파일 내 값 변경'을 사용하면 요청이 완료되고 스크립트가 실행 된 후에 새 값을 파일에 저장하는 것이 가능한 유일한 방법은 플랫 텍스트 파일과 같은 메커니즘을 사용하여 저장하는 것입니다 DrColossos가 기술 한 방법이나 추후 검색을위한 데이터베이스 파일을 바꾸면 무슨 뜻입니까? test.php에 반영된 실제 값을 코드에서 영구히 작성하고 보존하기 때문에 실제로 수정하려고합니다. – DeaconDesperado

0
<?php 
$arr1 = array("a"=>"b", "c" =>"d"); 
$newarr=array("d"=>"f"); 
$arr1+=$newarr; 

저는 5 년이되었지만, 저에게 맞는 간단한 방법을 제공하고 싶습니다.

관련 문제