2015-03-13 89 views
-1

当我火了这一点:CakePHP的找到所有主列键

$this->model->find('all',array()); 

我得到了模型的数据数组:

Array 
(
[0] => Array 
    (
     // some data 
    ) 

[1] => Array 
    (
     // some data 
    ) 

[2] => Array 
    (
     // some data 
    ) 
... 
) 

现在是有可能的,而不是0,1, 2获取每个数据的密钥ID?

例如:

Array 
(
    [365] => Array 
    (
     [model] => Array 
     (
      [id] => 365  
      // some data 
     ) 
    ) 
    [442] => Array 
    (
     [model] => Array 
     (
      [id] => 442  
      // some data 
     ) 
    ) 
    [1000] => Array 
    (
     [model] => Array 
     (
      [id] => 1000  
      // some data 
     ) 
    ) 
... 
) 

我知道find('list')可以做这样的事情,但最多只有2场(一个键和一个值)。

+0

_是否有可能将id作为每个数据的关键字?_否 - 当您使用[find method]时(http://book.cakephp.org/2.0/en/models/retrieving-your -data.html)。 – AgRizzo 2015-03-13 12:40:03

+0

我总是欣赏downvotes没有任何评论任何。为什么告诉人们他们做错了什么,所以他们不会再这样做...... – MrSmith 2015-03-13 15:33:20

回答

0

你可以建立它也许这个代码可以做到这一点:

$final_array = array(); 
foreach($returned_array as $k => $v){ 

    $final_array[$v['id']] = $v; 
} 
print_r($final_array); 
+0

我知道我可以建立它。但我想要的是完全构建阵列。 – MrSmith 2015-03-13 12:22:39

+0

好的,蛋糕我不这么认为 – 2015-03-13 12:27:45

0

它仍然是一个后发现操作,但看看套装::结合(http://book.cakephp.org/2.0/en/core-utility-libraries/set.html)作为一个更优雅的解决方案。例如:

$newArray = Set::combine($yourArray, '{n}.Model.id'); 
/* $newArray now looks like: 
    Array 
    (
     [365] => 
     [442] => 
     [1000] => 
    ) 
*/ 

(或多或少只是文档示例)可能适用于您的情况。