2012-03-04 4 views
2

이상하게 들릴 수 있습니다. PHP 파일에서 변수의 순서를 등록하는 가장 간단한 방법이 필요합니다. 당신이 3 개 변수 정의파일의 PHP 변수 순서

말할 수 있습니다 : 내가 당신에게 예를 들게 다른 PHP 파일에서

<?php 
$adam = 'the yes man'; 
$ben = 'the hard worker'; 
$john = 'the slave'; 
?> 

을, 당신은 이러한 변수의 순서 (당신이 변수 아담, 벤과 존 알고를 알아야합니다 하지만 입력 된 순서인지는 알 수 없습니다. 변수 주위에 너무 많은 코드로 확장하지 않으면 어떻게 순서를 알 수 있습니까?

편집 :

모든 좋은 답변 주셔서 감사합니다. 그 해결책은 @ blackpla9ue가 말한 것에 달려있다.

대신 배열을 만들었으므로 이제 위치 (0-> 1-> 2-> 3 -> ...)를 순환 할 수 있습니다.

<?php 
    $array = array(
    'adam' => 'the yes man', 
    'ben' => 'the hard worker', 
    'john' => 'the slave' 
    ) 
<? 

<?php 
    $array_pos = array_keys($array); 

    $person1 = $array_pos[0]; 
    $person1_is = $array[$array_pos[0]]; 
?> 

당신은 또한 사용할 수 있습니다

<?php 
    foreach ($array as $key => $value) 
     statement 
?> 
+7

대신 [array] (http://php.net/manual/en/language.types.array.php)를 사용하지 않으시겠습니까? –

+0

나는 그것을 사용하여 미래에 더 빨리 내 자신의 개발을 할 수 있습니다. 주로 테스트 목적으로 사용합니다. 실험을 통해서만 생산 수준을 더 높일 수 있습니다. 전체 배경을 언급하는 것이 항상 바람직한 것은 아닙니다. 어떤 이들은 다른 사람들이하지 않는 나의 삶의 이야기를 읽는 것을 선호합니다. -1 폴로 쉽게. – MartinR

+1

예,이 방법은 downvoted해서는 안되며, [chelmertz] (http://stackoverflow.com/a/9556143/327317)에서 볼 수 있듯이 여전히 유효하고 흥미로운 질문입니다. 그러나이 방법의 사용법은 가장자리에 상당히 제한되어 있습니다 사례 (매일 필요한 경우 배열을 사용해야 함). –

답변

2

왜 당신이

$users = array('adam' => 'the yes man', 
       'ben' => 'the hard worker', 
       'john' => 'the slave'); 

당신은 위치, 사용 싶어 array,

$positions = array_keys($users); 

echo array_search('ben', $positions); // 1 
echo array_search('john', $positions); // 2 
+0

좋습니다. 이것은 내가 선택한 해결책으로 이어졌다. 고맙습니다. – MartinR

+0

+1, 좋은 해결책입니다. –

2

스토어를 사용하지 말아 배열로.

<?php 
$array = array(
'adam'=>'the yes man', 
'ben'=>'the hard worker', 
'john'=>'the slave' 
); 
+0

정확합니다. 어레이 솔루션이 훨씬 좋았습니다. – MartinR

3

정의 된 순서대로 정의 된 모든 변수를 포함하는 배열을 제공하는 get_defined_vars()이라는 함수가 있습니다.

그것을 밖으로 시도 : 당신은 당신이 이러한 한다거나 할을 선언 처음 스크립트를 수정 할 수있는 경우

<?php 
$prev = get_defined_vars(); 
$ben = 'the hard worker'; 
$adam = 'the yes man'; 
$john = 'the slave'; 
# removing the builtin stuff you get, like $_REQUEST and such 
var_dump(array_diff(get_defined_vars(), $prev)); 
+0

이것은 해결책으로 이어질 수 있지만 결국 너무 털이 많아졌습니다. 대신에 @ blackpla9ue의 대답을 사용했습니다. – MartinR

+0

+1,하지만 이것은 OP의 질문에 대한 진정한 대답입니다. –

0

당신이 순서를 찾기 위해 array_search 사용할 수있는 두 번째 스크립트에

<?php 
$order = array(); 
$adam = 'the yes man'; 
$order[] = 'admin'; 
$ben = 'the hard worker'; 
$order[] = 'ben'; 
$john = 'the slave'; 
$order[] = 'john'; 
?> 

을 추가 할 수 있습니다 선언.