0

我正在构建一个函数,我想从 db 中检索键/值对,它就像$result=array($key=>$value);当我使用 this 时$result,在一个需要在其参数中包含一个数组的对象中

function Foo($result) { array ('superkey'=>$result); }

这认为 $result 包含多个这样的数组:

Array
(
    [key1] => value1
)
Array
(
    [key3] => value2
)
Array
(
    [key3] => value3
)
Array
(
    [key4] => value4
)

但我希望将其视为一个数组:

Array
(
    [key1] => value1

    [key3] => value2

    [key3] => value3

    [key4] => value4
)

谁能帮我吗?

4

3 回答 3

0

如何使用array_merge

array_merge($array1, $array2, $array3, ...);
于 2013-01-19T14:26:56.993 回答
0

当您从数据库中检索值时,它通常会发送一个多维数组,例如:

array(3) {
  [0]=> array(1) { ["samekey"]=> value1 }
  [1]=> array(1) { ["samekey"]=> value2 }
  [2]=> array(1) { ["samekey"]=> value3 }
}

这些数组的键总是相同的,因为它们代表数据库中的列名。在我看来,您正在寻找一种将所有这些值编译到单个数组中的方法。为此,您需要忘记密钥,并使用以下内容:

foreach($result as $entry) $fixedresult[] = $entry['samekey'];
于 2013-01-19T14:43:07.673 回答
0

好吧,如果您想array_merge在多个数组上使用,但您还不知道它将是多少,您可以执行以下操作:

call_user_func_array('array_merge', $result);

$result尽管正如其他人所指出的那样,一旦其中包含的数组具有相同的密钥,这就会中断。

于 2013-01-19T16:41:57.190 回答