2013-01-19 182 views
0

我正在构建一个函数,我想从数据库中检索键/值对,它来自$result=array($key=>$value);,当我使用这个$result时,在阵列中的参数更改一个返回多个单维数组的函数为一个返回一个单维数组

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

这种认为$结果包含多个阵列像这样:

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

但我想它把它看作一个数组:

Array 
(
    [key1] => value1 

    [key3] => value2 

    [key3] => value3 

    [key4] => value4 
) 

任何人都可以帮我吗?

+1

您不能拥有多个具有相同键值的数组元素 – AlecTMH

+0

您能否提供从db获取的确切数据? –

+0

上午出不来一个Symfony框架项目,我与数据库的内容选择标签: $形成= $这个 - > createFormBuilder() - >添加( 'sectoption', '选择', 阵列( '选择' => $结果, '多'=>假, '扩大'=>假, '需要'=>真实, '标签'=> '选择部分' ) ) - > getForm (); $ createview = $ form-> createView(); – gildniy

回答

0

如何使用array_merge

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

我没有访问这些数组,我有他们在函数的返回,但我刚刚插入$ result =数组($ key => $ value),因为我应该不知道从哪个结果得到数据库! 所以我不能使用array_merge,因为我在开始时还没有这些数组! – gildniy

0

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

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

这些阵列的按键都是一样的,因为它们代表数据库中的列名。这听起来像你正在寻找一种方法来将所有这些值编译成单个数组。要做到这一点,您需要了解的关键是忘记了,和使用的东西IKE在此:

foreach($result as $entry) $fixedresult[] = $entry['samekey']; 
+0

或者,使用'array_map(function($ entry){return $ entry ['samekey'];},$ result)' –

+0

'你在这里的意思是'samekey'我希望你使用关键字我用于问题,我'请问这会返回我期待得到的结果吗? – gildniy

0

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

call_user_func_array('array_merge', $result); 

虽然这会尽快包含在$result阵列具有相同的关键破发,正如其他人指出。