Как получить доступ к указанному ключу в массиве с помощью переменных переменных

Моя проблема настолько запутана, что я даже не знаю, как начать ее объяснять.

Допустим, у меня есть несколько ассоциативных массивов (не всегда одни и те же массивы: иногда у меня есть массив продуктов, иногда у меня есть массив рынков, иногда у меня есть массив сегментов и т. Д.). $ values ​​- единственный массив, который я всегда получаю!

$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");
...

Я хочу построить массив со значениями каждого из полученных массивов, со значениями, соответствующими ключам.
Что-то вроде

$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),
...);

Я пробовал что-то вроде этого:

        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;
}

И тогда я делаю цикл foreach:

    // 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 $$objKey, ${$objKey}, ${$objKey}[$key], ${$objKey[$key]}, $$objKey[$key]

Спасибо за помощь!

0

Решение

Вы можете просто получить массив в случае $objKey = $this->productClasses и используется как $objKey[$key], И вы можете заменить $objKey в $arrayClasses или подобный для хорошего понимающего кода.

постскриптум Извините за мой английский.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector