2016-06-08 2 views
0

내 문제는 너무 꼬아 서 설명하는 방법조차 모릅니다.변수 변수를 사용하여 배열의 특정 키에 액세스하는 방법

내가 말하자면 여러 개의 조화 된 배열 (항상 같은 배열이 아니라 때때로 제품 배열이 있고 때로는 시장 배열이 있고 때로는 세그먼트 배열이있는 등)도 있습니다. $ 값은 항상 얻을 수있는 유일한 배열입니다!

$values = array ("0" => "1", "4" => "2", "5" => "3"); 
$products = array ("0" => "1", "1" => "1", "2" => "2", "3" => "1", "4" => "2", "5" => "3"); 
$markets = array ("0" => "1", "3" => "1", "4" => "2", "5" => "3"); 
... 

키와 일치하는 값을 사용하여 각 배열의 값으로 배열을 작성하고 싶습니다. 나는 foreach는 cicle을 다음

 switch ($_POST["cpv_type"]) { 
      case "pClass": 
       $keyValue = $_POST["cpv_type"]; 
       $objKey = "this->productClasses"; 
       break; 

      case "pMarket": 
       $keyValue = $_POST["cpv_type"]; 
       $objKey = "this->markets"; 
       break; 

      case "pSegment": 
       $keyValue = $_POST["cpv_type"]; 
       $objKey = "this->productSegments"; 
       break; 

      case "pType": 
       $keyValue = $_POST["cpv_type"]; 
       $objKey = "this->productTypes"; 
       break; 

      default: 
       $keyValue = "products"; 
       $objKey = "this->products"; 
       break; 
     } 

을 그리고 :

$myArray = array ("0" => array ("values" => "1", "products" => "1", "markets" => "1"), 
        "1" => array ("products" => "1"), 
        "2" => array ("products" => "2"), 
        "3" => array ("products" => "1", "markets" => "1"), 
        "4" => array ("values" => "2", "products" => "2", "markets" => 2), 
       ...); 

같은 뭔가 나는 이런 식으로 뭔가를 시도했습니다

// all values must be floats 
    if(!empty($this->value)){ 
     foreach ($this->value as $key => &$curVal){ 
      // if no value has been entered, exclude it and also associated product from validation 
      if (strlen(trim($curVal)) == 0) { 
       unset($this->value[$key]); 
       unset($this->products[$key]); 
      } else { 
             // This validates my variable 
       $curVal = TMS::checkVar($curVal, "dec", $_SESSION["dico"]->_VALUE_, 100, false); 


             // Store the value on existing array, associating "hoppValue" to the right key entry! 
       $logDetail[$keyValue][${$objKey}[$key]]["hoppValue"] = $curVal; 
      } 
     } 
    } 

내 문제는 변수 변수에 : 방법 변수 문법을 사용하여 $this->productTypes[5]과 같이 액세스합니까? 나는 모든 var_dumps은 "널 (null)"을 얻을 $$objKey, ${$objKey}, ${$objKey}[$key], ${$objKey[$key]},

$$objKey[$key] 여러분의 도움에 감사드립니다!

+1

'$ objKey = $ this-> productClasses'의 경우 간단히 배열을 가져올 수 있으며'$ objKey [$ key] '로 사용됩니다 – Naumov

+0

당신은 완전히 옳습니다! 대답은 내 눈앞에 너무 간단하고 바로있었습니다. 근무일이 너무 길어서는 안됩니다! (답을 올바르게 달아주세요.) –

답변

1

$objKey = $this->productClasses의 경우 간단히 배열을 가져올 수 있으며 $objKey[$key]으로 사용됩니다. 그리고 당신은 $objKey$arrayClasses으로 바꿀 수 있습니다. 또는 좋은 understending 코드를 similary로 대체 할 수 있습니다.

p.s. 미안하다.

관련 문제