Php 将返回多个一维数组的函数更改为返回一个一维数组的函数
我正在构建一个函数,我想从db中检索键/值对,它类似于Php 将返回多个一维数组的函数更改为返回一个一维数组的函数,php,arrays,Php,Arrays,我正在构建一个函数,我想从db中检索键/值对,它类似于$result=array($key=>$value)createFormBuilder()->add('sectoption','choice',array('choices'=>$result',multiple'=>false',expanded'=>false',required'=>true',label'=>Select a section')->getForm();$createview=$form->createview();
$result=array($key=>$value)当我在参数中需要数组的对象中使用此$result
时
function Foo($result) { array ('superkey'=>$result); }
这考虑到$result包含多个如下数组:
Array
(
[key1] => value1
)
Array
(
[key3] => value2
)
Array
(
[key3] => value3
)
Array
(
[key4] => value4
)
foreach($result as $entry) $fixedresult[] = $entry['samekey'];
<>但是我想把它看成是一个数组:
Array
(
[key1] => value1
[key3] => value2
[key3] => value3
[key4] => value4
)
有人能帮我吗?使用:
从数据库检索值时,它通常会发送多维数组,如:
array(3) {
[0]=> array(1) { ["samekey"]=> value1 }
[1]=> array(1) { ["samekey"]=> value2 }
[2]=> array(1) { ["samekey"]=> value3 }
}
这些数组的键总是相同的,因为它们表示数据库中的列名。在我看来,您似乎在寻找一种将所有这些值编译成单个数组的方法。要做到这一点,您需要忘记密钥,并使用类似以下内容:
foreach($result as $entry) $fixedresult[] = $entry['samekey'];
好的,如果您想在多个数组上使用array\u merge
,但您还不知道会有多少个,您可以执行以下操作:
call_user_func_array('array_merge', $result);
尽管正如其他人指出的那样,$result
中包含的数组具有相同的键时,这将立即中断。您不能有多个具有相同键值的数组元素。您可以提供从db获得的确切数据吗?在Symfony framework项目中,以及我的带有数据库元素的select标记:$form=$this->createFormBuilder()->add('sectoption','choice',array('choices'=>$result',multiple'=>false',expanded'=>false',required'=>true',label'=>Select a section')->getForm();$createview=$form->createview();或者,使用array_-map(函数($entry){return$entry['samekey'];},$result)
你这里说的“samekey”是什么意思?我希望你使用我在讨论中使用的关键字,我想问一下,这会返回我期望得到的结果吗?我没有访问这些数组,我在函数返回时有它们,但我刚刚插入了$result=array($key=>$value),因为我不知道从数据库中得到哪个结果!所以我不能使用array\u merge,因为我一开始还没有这些数组!