0

可能重复:
PHP 中从两个并行索引数组创建关联数组最直接的方法是什么?

如何转换索引数组,如:

$a = array("foo", "bar", "hallo", "world");

到具有索引值的关联数组,例如:

$a = array(
    "a1" => "foo",
    "b5" => "bar",
    "f7" => "hallo",
    "n4" => "world"
);

也许是一些 PHP 核心功能?

或具有相同的变体keys

$a = array(
    "key" => "foo",
    "key" => "bar",
    "key" => "hallo",
    "key" => "world"
);

UPD

我希望有一个类似的函数array_merge(),但接受键数组和值数组来创建结果数组。

4

2 回答 2

16
$keys = array('a1', 'b5', 'f7', 'n4');
$a = array_combine($keys, $a);

数组索引必须是唯一的,因此不可能使用相同的键。

于 2012-09-07T07:23:51.220 回答
0

如果密钥是随机的,那么我们可以这样做:

$a = array("foo", "bar", "hallo", "world");

$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$size = strlen( $chars );   
$num="0123456789";

$a_s=array();

foreach($a as $art)
{
    $rand= $chars[ rand( 0, $size - 1 ) ].$num[ rand( 0, 9 ) ];

    $a_s[$rand]=$art;
}

$a=$a_s;
print_r($a);
于 2012-09-07T07:28:57.243 回答