【问题标题】:Array Combine Using String 'Keys' and Array 'Values'使用字符串“键”和数组“值”组合数组
【发布时间】:2017-01-20 20:33:09
【问题描述】:

我正在尝试使用 array_combine 函数将一组作为字符串的键与一组数组组合在一起。数组组合导致新数组被重新索引。

$keys = array("00","11","22");
$values = array(0 => array("cake", "sprinkles"), 1 => array("dog", "cat"), 2 => array("water","fire"));

$combined_array = array_combine($keys, $values);

结果

Array
(
    [0] => Array
        (
            [0] => cake
            [1] => sprinkles
        )

    [1] => Array
        (
            [0] => dog
            [1] => cat
        )

    [2] => Array
        (
            [0] => water
            [1] => fire
        )
)

期望的结果

Array
(
    ["00"] => Array
        (
            [0] => cake
            [1] => sprinkles
        )

    ["11"] => Array
        (
            [0] => dog
            [1] => cat
        )

    ["22"] => Array
        (
            [0] => water
            [1] => fire
        )
)

【问题讨论】:

  • $Keys => $keys。您发布的代码也不会导致您的 RESULT 输出 - 如果您使用无效参数调用 array_combine,它只会发出警告并返回 false。
  • 对不起,问题中的错误,不在代码中,我会修改帖子
  • 修改后的代码运行良好:eval.in/640940

标签: php arrays multidimensional-array merge key


【解决方案1】:

你的代码很好

只有拼写错误$Keys 而不是$keys

$combined_array = array_combine($keys, $values);

echo "<pre>";print_r($combined_array);

输出

Array
(
    [00] => Array
        (
            [0] => cake
            [1] => sprinkles
        )

    [11] => Array
        (
            [0] => dog
            [1] => cat
        )

    [22] => Array
        (
            [0] => water
            [1] => fire
        )

)

还评论了如何在您发布array_combine 时通过此error 获得输出

警告:array_combine() 期望参数 1 为数组,给定为空

【讨论】:

  • 是的,您和@iaann 都是正确的,发布的修改后的示例工作正常,并且确实得到了预期的结果,这在我的实际项目代码中的其他地方被覆盖,这就是我遇到问题的原因。
【解决方案2】:

如果此方法不起作用,您可以尝试其他方法,我没有尝试您的代码,但这是其他解决方案之一:

<?php

$keys = array("00","11","22");
$values = array(0 => array("cake", "sprinkles"), 1 => array("dog", "cat"), 2 => array("water","fire"));

foreach ($keys as $key) {
        foreach ($values as $k => $value) {

            $result[$key] = $value;
            // if you want to unset the initaial array
            // unset($values[$k]);

        }
}

var_dump($result); exit;

?>

希望对你有帮助.. 干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    相关资源
    最近更新 更多