PHP подтолкнуть значение в подмассив ключа - PullRequest
0 голосов
/ 01 мая 2019

У меня есть массив мета, который я сохраняю для пользователя, который выглядит так

$testArray = array("67" => array("400", "402", "1488"), "84" => array("599", 620"), "92" => array("740")

Если массива для пользователя не существует, мне нужно создать его, учитывая ключ и значение

$testArray = ["67" => ["400"]]

Если $ testArray не пустой, мне нужно использовать ключ, который я знаю, чтобы найти соответствующий массив и добавить значение, данное

$testArray["67"][] = "1500"

Таким образом, вывод должен быть

array("67" => array("400", "1500"))

Этот метод ничего не добавляет к массиву, который существует, и каждая пробованная комбинация либо ничего не добавляет, либо вложенный массив

Ответы [ 3 ]

0 голосов
/ 01 мая 2019

Вы можете создать фиктивный массив для хранения вашего $valOne adn $valTwo и вставить этот фиктивный массив в качестве значения для вашего ключа.

$dummy = array();
array_push($dummy, $valOne, $valTwo);
if (!empty($alpha)) {
    $alpha[$key] = $dummy;
} else {
    $alpha = array($key => $dummy);
}
0 голосов
/ 01 мая 2019

Получение ассоциативного массива из функции get_data_array ();

$alpha = get_data_array();

Предполагая, что приведенные ниже данные вы хотите добавить в переменную $ alpha

$key = "red";
$valOne = "blue";
$valTwo = "green";

Метод 1 : Если вы знаете только несколько переменных, которые будут добавлены

$alpha[$key][] = $valOne;
$alpha[$key][] = $valTwo;

Причина, мы знаем имена переменных, которые должны быть добавлены в список, основанный на разных именах переменных. PHP создаст переменную, если она не существует, поэтому, когда мы $ alpha [$ key] [] , она создаст память для ключа, если он не завершен, если он уже существует, то добавляем в массив в прошлой.

Метод 2 : если мы добавляем из другого массива

$valuesToAdd = array( $valueOne, $valTwo );

Здесь $ valueToAdd может иметь несколько значений в массиве. Это может происходить из какого-либо внешнего источника, или API, или пользовательского ввода, такого как теги. В этом случае вы можете сделать следующий код

foreach( $valuesToAdd as $element ){
    $alpha[$key][] = $element;
}

Здесь мы зацикливаем каждый элемент из $ valueToAdd и каждый раз присваиваем ему $ element, поэтому добавляем значение в $ alpha с помощью ключа.

0 голосов
/ 01 мая 2019

Вы ищете что-то вроде следующего:

$key = "red";
$valOne = "blue";
$valTwo = "green";
$alpha = get_data_array();
if(count($alpha))
{
   $finalArr = [$key => [$valOne,$valTwo]];
}
...