如何将数组的第一个值转换为键,第二个值转换为值

10

嗨,我正在处理一些数组操作。

我需要将数组的第一个值转换为键,将第二个值转换为值。

我有一个名为$testArray的变量,其中存储了如下的数组。

 Array
(
    [0] => Array
        (
            [0] => Color
            [1] => White on Red
        )

    [1] => Array
        (
            [0] => Depicted Text
            [1] => EMPTY
        )

    [2] => Array
        (
            [0] => Depth [Nom]
            [1] => 0.004 in
        )

    [3] => Array
        (
            [0] => Language
            [1] => English
        )

    [4] => Array
        (
            [0] => Length [Nom]
            [1] => 10 in
        )

    [5] => Array
        (
            [0] => Material
            [1] => Adhesive Vinyl
        )

    [6] => Array
        (
            [0] => Mounting
            [1] => Surface
        )

    [7] => Array
        (
            [0] => Width [Nom]
            [1] => 14 in
        )

    [8] => Array
        (
            [0] => Wt.
            [1] => 0.056 lb
        )

)

期望输出:

    Array
(
    [0] => Array
        (
            [Color] => White on Red
        )

    [1] => Array
        (
            [Depicted Text] => EMPTY
        )

    [2] => Array
        (
            [Depth [Nom]] => 0.004 in
        )

    [3] => Array
        (
            [Language] => English
        )

    [4] => Array
        (
            [Length [Nom]] => 10 in
        )

    [5] => Array
        (
            [Material] => Adhesive Vinyl
        )

    [6] => Array
        (
            [Mounting] => Surface
        )

    [7] => Array
        (
            [Width [Nom]] => 14 in
        )

    [8] => Array
        (
            [Wt.] => 0.056 lb
        )

)

我已经尝试使用数组函数array_keys和array_values,但它不起作用


想要将其转换为键值形式,例如 [长度 [名称]] => 10 英寸 - Manthan Dave
如何在PHP数组中将第一个值作为键,第二个值作为值?答案:使用循环遍历数组并创建新数组。例如:$newArray = array(); foreach($oldArray as $subArray){ $newArray[$subArray[0]] = $subArray[1]; } - ᴍᴇʜᴏᴠ
2个回答

13

使用array_map函数的简单解决方案:

$result = array_map(function($v){
    return [$v[0] => $v[1]];
}, $testArray);

看起来不错,但只有在您不需要修改第一级数组键时才有效。我需要一个值成为实际的数组键,但这并没有帮助到我。 - ᴍᴇʜᴏᴠ

5
假设结构始终相同,您可以这样做:
$output = array();
foreach($testArray as $v){
    $output[] = array($v[0] => $v[1]);
}

在此链接中可以看到实际效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接