Php 数组的映射函数

Php 数组的映射函数,php,map,Php,Map,我有这样一个数组$a=(“某物”、“某物”、“另一物”)和另一个类似这样的数组$b=(“b”,“bb”) 我想生成一个$a=array(“something”=>array(“b”,“bb”),“something other”,“other something”)。怎样才能做到这一点呢?我以前的回答是废话。谢谢大家指点 以下是我最新的答案: <?php $a = array ( 'something', 'something else', 'another so

我有这样一个数组
$a=(“某物”、“某物”、“另一物”)
和另一个类似这样的数组
$b=(“b”,“bb”)


我想生成一个
$a=array(“something”=>array(“b”,“bb”),“something other”,“other something”)。怎样才能做到这一点呢?

我以前的回答是废话。谢谢大家指点

以下是我最新的答案:

<?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);

我以前的回答是废话。谢谢大家指点

以下是我最新的答案:

<?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);

试试这个,有很多选择,你可以根据位置或者像@Mike Moore answers这样的数组元素来选择

$a=数组('something'、'something'、'other'、'other'other'other'other'something');
$b=数组('b','bb');
对于($i=0;$i$b);
}
}
印刷费($a);

试试这个,有很多选择,你可以根据位置或者像@Mike Moore answers这样的数组元素来选择

$a=数组('something'、'something'、'other'、'other'other'other'other'something');
$b=数组('b','bb');
对于($i=0;$i$b);
}
}
印刷费($a);
尝试更大的灵活性:

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);
}
另请参见、和通用的

尝试以获得更大的灵活性:

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

另请参见、、和泛型

是否希望第一个数组中的第一个值作为第二个数组的键?为什么不这样做<代码>$a[$a[0]]=$b;未结算($a[0])您要求的不是以任何方式连接。这不是一个定义良好的问题。你能更好地解释一下吗?那么,你想创建多维数组吗?你想让第一个数组中的第一个值成为第二个数组的键吗?那你为什么不这样做呢<代码>$a[$a[0]]=$b;未结算($a[0])您要求的不是以任何方式连接。这不是一个定义良好的问题。你能更好地解释一下吗?那么,你想创建多维数组吗?这将给他留下$a=(“某物”、“某物”、“另一物”、“某物”=>数组(“b”、“bb”);这将给他留下$a=(“某物”、“某物”、“另一物”、“某物”=>数组(“b”、“bb”);