2013-06-23 2 views
1

죄송합니다 (의심의 여지가) 질문을 반복했지만 다른 답변은 약간 나를 혼란스럽게합니다. 이제PHP 그 밖의 경우 배열 내에

$testflag = ''; 

    $test = array(

    'auxiliaryFields' => array(
     array(
      'key' => 'extra1', 
      'label' => 'TEST', 
      'value' => 'TEST', 
      'textAlignment' => 'PKTextAlignmentLeft'     
     ) 
     if ($testflag != ''){ 
     , 
     array(
      'key' => 'extra2', 
      'label' => 'TEST2', 
      'value' => 'TEST2', 
      'textAlignment' => 'PKTextAlignmentLeft'     
     ) 
    } 

    )); 

    var_dump($test); 

, 내 질문은 위의 작업을 수행하는 방법을 그래서 당신은 배열의 내부 코드를 사용할 수 없습니다 읽었습니다 :

그래서 나는이 같은 배열이 있나요? 이 예제에서는 단지 2 배열 (extra1 & extra2)이지만 실제 코드에는 총 4 개의 배열이 있습니다. 조건은 기본적으로 session : form : element : not_null이 포함 된 다음 extra2 - 3 - 4 등을 포함하고, null 인 경우 아무 것도 수행하지 않습니다.

누군가 도와 드릴 수 있습니까?

+0

하나의 외부 '배열'표현식을 사용하는 것은 불가능합니다 (그리고 이것은 중복입니다). '? :'사용은 * a * 값이되지만 "값 부재"를 지정할 수는 없습니다. – user2246674

+0

참조 http://stackoverflow.com/questions/8329897/if-statement-within-an-array-declaration-is-that-possible?lq=1, http://stackoverflow.com/questions/6665068/using- 배열 내의 다른 경우? rq = 1 – user2246674

+0

실제로 달성하려는 것은 무엇입니까? 문맥없이 무언가를하는 방법을 설명하려고하기 때문에 질문은 혼란 스럽습니다. 분명히 배열 내의 조건문은 가능하지 않기 때문에 실제로 문제를 자세히 설명해 준다면 더 좋은 해결책이 될 수 있습니다. –

답변

1

이 대답을 mzedeler 있지만

$testflag = 'test'; 

$test = array(

'auxiliaryFields' => array(
    array(
     'key' => 'extra1', 
     'label' => 'TEST', 
     'value' => 'TEST', 
     'textAlignment' => 'PKTextAlignmentLeft'     
    ) 
)); 

var_dump($test); 
if ($testflag != ''){ 
    $test['auxiliaryFields'][]=array(
     'key' => 'extra2', 
     'label' => 'TEST2', 
     'value' => 'TEST2', 
     'textAlignment' => 'PKTextAlignmentLeft'     
    ); 
} 

var_dump($test); 

내가 변경 한 $ 테스트 [ 'auxiliaryFields를'] 작업과 유사하다 [0] [] $ 테스트 [ 'auxiliaryFields']와 []를 sintax 오류 수정 (누락;)

+0

이 코드는 내가 원하는 코드를 얻었습니다. 많은 감사합니다. – jtanner

0

이와 비슷한 것.

$testflag = ''; 

    $test = array(

    'auxiliaryFields' => array(
     array(
      'key' => 'extra1', 
      'label' => 'TEST', 
      'value' => 'TEST', 
      'textAlignment' => 'PKTextAlignmentLeft'     
     ) 
    )); 
    if ($testflag != '') { 
     $test['auxillaryFields'][] = 
     array(
      'key' => 'extra2', 
      'label' => 'TEST2', 
      'value' => 'TEST2', 
      'textAlignment' => 'PKTextAlignmentLeft'     
     ) 
    } 
+0

이것은 작동하지 않는다 나는 두려워한다. – jtanner

+0

하나의 구문 오류가 수정되었습니다. – mzedeler

+0

그게'$ test [ 'auxillaryFields'] [0] []'나는 대신 – bystwn22

0

미리보기에서와 같이 배열에서 조건부를 사용할 수 없습니다. 배열이 선언 된 후 추가 값을 배열에 추가 할 수 있습니다. 예를 들어

if (something) { 
    $test[] = $someArray; // $test[] is next element, so 
          // add $someArray as next element of $test 
} 

당신의 조각이된다 :

$ TESTFLAG = '';

// set up array here 
$test = array(

'auxiliaryFields' => array(
    array(
     'key' => 'extra1', 
     'label' => 'TEST', 
     'value' => 'TEST', 
     'textAlignment' => 'PKTextAlignmentLeft'     
    ) 
); 

// conditionally, add an extra element. 
if ($testflag != ''){ 
    $test[] = 
     array(
     'key' => 'extra2', 
     'label' => 'TEST2', 
     'value' => 'TEST2', 
     'textAlignment' => 'PKTextAlignmentLeft'     
    ); 
} 



var_dump($test); 
관련 문제