我有一个像这样$a=("something","something else","another something");
的数组和另一个像$b=("b","bb")
这样的数组。
我想制作一个$a = array("something"=>Array("b","bb"),"something else","another something");
。怎么能实现这个目标?
答案 0 :(得分:1)
尝试这个,有很多选项,你可以根据位置或像@Mike Moore回答的数组元素那样做
$a = array ( 'something', 'something else', 'another something');
$b = array('b', 'bb');
for($i = 0; $i < count($a); $i++)
{
if($i==0)
{
$a[$i] = array('something' => $b);
}
}
print_r($a);
答案 1 :(得分:1)
尝试array_map以获得更大的灵活性:
function map_a_thing(key, val, compare) {
if (key == compare)
return array(key => val);
else
return key;
end
}
$c = array_map('map_a_thing', $a, $b, 'something');
考虑到你实际上是在问一个map-reduce问题,你在那里寻找一个函数来对某个条件执行一个给定的动作。
通过这个答案,您可以迭代基础数组并重新映射某些值
$map_targets = array('something', 'some2', 'some45', 'some-other');
foreach ($map_targets as $target) {
$a = array_map('map_a_thing', $a, $b, $target);
}
答案 2 :(得分:-1)
YIKES 我的老答案是垃圾。感谢您指出每个人!
这是我更新的答案:
<?php
$a = array (
'something',
'something else',
'another something'
);
$b = array('b', 'bb');
for($i = 0; $i < count($a); $i++)
{
if($a[$i] == 'something')
{
$a[$i] = array('something' => $b);
}
}
print_r($a);