PHP将值推入键的子数组

时间:2019-05-01 03:48:11

标签: php push associative-array

我有一个要保存的元数据数组,看起来像这样

index.md

如果不存在用于用户的数组,则需要在给定键和值的情况下构建它

2000/                           (all projects from 2000)
2000/brandname-title/           (the index.md file with images, videos, credits)
2000/brandname-title/images/    (gallery1 and gallery2)
2000/brandname-title/videos/    (video1 and video2)

如果$ testArray不为空,则需要使用我知道的键来找到对应的数组并添加给定的值

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

所以输出应该是

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

此方法不会为现有数组添加任何内容,我尝试过的每种组合都不会添加任何内容或嵌套数组

3 个答案:

答案 0 :(得分:0)

您是否正在寻找类似以下的内容:

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

答案 1 :(得分:0)

您可以创建一个虚拟数组来存储您的$valOne$valTwo并将此虚拟数组作为键值输入。

$dummy = array();
array_push($dummy, $valOne, $valTwo);
if (!empty($alpha)) {
    $alpha[$key] = $dummy;
} else {
    $alpha = array($key => $dummy);
}

答案 2 :(得分:0)

从函数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上。