0

我有一个包含以下行的大数组:

Array
(
    [0] => Array
        (
            [attribute] => gender
            [value] => male
        )

    [1] => Array
        (
            [attribute] => first_name
            [value] => test
        )

)

我想将其转换为关联数组:

Array
(
    [gender] => male
    [first_name] => test
)

这里有一个内置的 PHP 函数可以做到这一点,还是我应该使用 Foreach 循环来做到这一点?

4

2 回答 2

2

在我看来,你真正应该做的是重构你的方法,因为这感觉就像你在解决错误的问题。为什么首先要以这种方式创建数组来重新构造它?您是否将数据作为 JSON 对象从某个外部源获取到 PHP 中,而您无法控制?或者是您在 PHP 中构建数组的方式很糟糕,而您现在想要以不同的方式重组它,因为您意识到使用这种方式会给您带来麻烦?

如果是前者,那么您将需要执行以下操作(在您想要的新结构中构建一个全新的数组):

$new_array = array();
foreach ($array as $element) {
    $new_array[$element['attribute']] = $element['value'];
}

如果是后者,那么您真的希望首先以这种方式构建数组,从而消除首先创建新数组的需要。

此外,如果您解释实际用例,可能会有更好的解决方案。可能您根本不需要这样做,而您只是在浪费您的时间,而现有的结构可以用来完成您需要的事情。

于 2012-12-10T23:44:04.447 回答
2

您将不得不使用 foreach 循环。没有这样做的“内置”方法。

foreach ($arr as $entry)
{
    $assoc[$entry["attribute"]] = $entry["value"];
}
于 2012-12-10T23:34:29.183 回答