2014-09-24 60 views
0

我exceuting此查询....寻找雄辩[胶囊::选择]返回数组索引(不只是订单号)

use Illuminate\Database\Capsule\Manager as Capsule; 

[...]

$sql = "SELECT 
blabla"; 

$clients = Capsule::select($sql); 
dd($clients); 

由此我得到这样的:

[0]=> 
    array(4) { 
["house_rec_by_class"]=> 
string(8) "-1250.00" 
["client_name"]=> 
string(11) "lalala" 
["client_id"]=> 
string(19) "800001D1-14037201481" 
["contract_stage"]=> 
string(4) "Live" 
} 
    [1]=> 
    array(4) { 
    ["house_rec_by_class"]=> 
string(7) "-250.00" 
["client_name"]=> 
string(15) "lolololo" 
["client_id"]=> 
string(19) "80000180-13939692362" 
["contract_stage"]=> 
string(4) "Live" 
} 

现在,我想是什么让这个数组,同时用[CLIENT_ID]中的键,而不是只是连续的数字... LIK Ë

["800001D1-14037201481"]=> ['client_name' => 'lalalala', '...'], 
["80000180-13939692362"]=> ['client_name' => 'lolololo', '...'] 

我知道我可以重新循环数组和分配键,只是很好奇,如果有更好的方式.. 谢谢..!

回答

0

你需要的东西像thit:

foreach ($clients as $elem) { 
    $id = $elem['client_id']; 
    $newClients[$id]['client_name'] = $elem['client_name']; 
    $newClients[$id]['contract_stage'] = $elem['contract_stage']; 
    // etc 
} 

您现在有一个新的阵列$ newClients预期。我建议你使用isset来检查每个元素是否存在。

+0

感谢亚当..是的,我知道我可以做到这一点(它写在问题中),我只是想寻找一个雄辩的解决方案,如'代码'$ clients = Capsule :: select($ sql) - > toArray () - > usingIndex(['client_id']);'code' – rrubiorr81 2014-09-24 02:39:07

+0

@ rrubiorr81我真的希望你能找到你想要的。这就是说我不认为你会这么做,因为这是你要问的一些非常具体的工作。您可能想要创建自己的功能。希望它有帮助。 – 2014-09-24 02:49:38