寻找Eloquent [Capsule :: select]返回索引数组(不仅仅是订单号)

时间:2014-09-24 01:04:46

标签: php arrays laravel

我正在考虑这个问题......

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],而不仅仅是连续的数字......比如

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

我知道我可以重新循环数组并分配键,只是好奇有没有更好的方法.. 谢谢..!

1 个答案:

答案 0 :(得分:0)

你需要这样的东西:

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

您现在可以按预期使用新的Array $ new Clients。我建议你使用isset检查每个元素是否存在。