我需要采用两个数组,并将它们组合成这样。不确定如何。这是两个数组。
$items = array( 'activity', 'photos');
$activity_subitems = array ('var1', 'var2', 'var3');
$photo_subitems = array ('var1', 'var2');
我希望它在这样的数组中;
$query_vars = array(
'activity' => 'var1',
'activity' => 'var2',
'activity' => 'var3',
'photos' => 'var1',
'photos' => 'var2'
);
答案 0 :(得分:2)
如果生成的数组是字典,则不能,因为您要为多个值创建多个相同的键。如果它不是字典,请重新解释这个问题。
如果你想要的是创造这样的东西:
Array (
[activity] => Array (
[0] => var1
[1] => var2
[2] => var3
)
[photos] => Array (
[0] => var1
[1] => var2
)
)
然后你可以这样做(假设这是我们正在讨论的PHP):
$items = array( 'activity', 'photos');
$activity_subitems = array ('var1', 'var2', 'var3');
$photos_subitems = array ('var1', 'var2');
$query_vars = array();
foreach ($items as $item) {
$query_vars[$item] = ${$item.'_subitems'};
}
print_r($query_vars);
另外,请记住,子数组的值名称是通过将_subitems
附加到第一个数组的值来生成的。
我已将变量$photo_subitems
重命名为$photos_subitems
以使其生效,因为这是$items
数组中的值。
答案 1 :(得分:1)
我不认识这种语言,而是以伪代码的方式识别
query_vars = new array();
for ($i in $items) {
for ($j in $i+'_subitems') {
query_vars.add($i, $j);
}
}
请记住,您要从$ items(位于@ $ j)和静态字段_items
答案 2 :(得分:1)
我假设您正在使用PHP。首先,您将无法在阵列中使用相同的键具有多个值,但如果您愿意,可以将值自身键入数组。
$items = array( 'activity', 'photos');
$activity_subitems = array ('var1', 'var2', 'var3');
$photo_subitems = array ('var1', 'var2');
$query_vars = array();
$query_vars['activity'] = $activity_subitems
$query_vars['photo'] = $photo_subitems
如果您想要一个数组,其中字符串本身以照片/活动开头,但它不是字典(再次,不能有重复的键),您可以执行以下操作:< / p>
注意: eval()函数通常被认为是不安全的,不推荐用于我所知道的几乎所有语言,PHP也是如此。使用以下操作需要您自担风险,但只要您能够有效控制eval()
调用中的文本(即,没有使用任何用户输入),它应该更安全一些。我得到的印象是您可能希望使用$items
中的值来说明构建结果时要使用的变量。
$items = array( 'activity', 'photos');
$activity_subitems = array ('var1', 'var2', 'var3');
$photos_subitems = array ('var1', 'var2');
$query_vars = array();
foreach ($items as &$item) {
foreach (eval('$'.$item.'_subitems') as &$subitem) {
$query_vars[] = $item.' =>'.$subitem;
}
}