我正在获取一个用于执行sql查询的用户名数组。就像这样
Array (
[0] => Array (
[users] => Array (
[displayname] => Mark
)
)
[1] => Array (
[users] => Array (
[displayname] => Helan
)
)
[2] => Array (
[users] => Array (
[displayname] => Shaun
)
)
[3] => Array (
[users] => Array (
[displayname] => Basu
)
)
[4] => Array (
[users] => Array (
[displayname] => Charit
)
)
[5] => Array (
[users] => Array (
[displayname] => Chris
)
)
[6] => Array (
[users] => Array (
[displayname] => Tony
)
)
[7] => Array (
[users] => Array (
[displayname] => Sam
)
)
[8] => Array (
[users] => Array (
[displayname] => Duck
)
)
[9] => Array (
[users] => Array (
[displayname] => Frank
)
)
)
我想将数组重新创建为此格式
Array ( 'Mark' => 'Mark','Helan' => 'Helan' , ..........,'Frank'=>'Frank')
我该怎么做?
答案 0 :(得分:2)
答案 1 :(得分:2)
$users = $this->User->find('list',array('fields'=>array('displayname','displayname')));
答案 2 :(得分:1)
Set::extract()似乎是array_combine()所需要的{{3}}。 这是一个例子:
// $data contains your find result
$names = Set::extract('/users/displayname', $data);
$formattedData = array_combine($names, $names)
答案 3 :(得分:1)
你真正要求的是Set::combine,它基本上是皮埃尔·马丁所暗示的组合。
$names = Set::combine($data, '{n}.users.displayname', '{n}.users.displayname');