将一个返回多个单维数组的函数更改为一个返回一个单维数组

时间:2013-01-19 14:24:03

标签: php arrays

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

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
)

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

如何使用array_merge

array_merge($array1, $array2, $array3, ...);

答案 1 :(得分: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'];

答案 2 :(得分:0)

好吧,如果你想在许多阵列上使用array_merge,但你还不知道它有多少,你可以做到以下几点:

call_user_func_array('array_merge', $result);

虽然$result中包含的数组具有相同的密钥,但一旦其他人指出,这将会中断。