Laravel 流明 |从数组中获取单个值
Posted
技术标签:
【中文标题】Laravel 流明 |从数组中获取单个值【英文标题】:Laravel Lumen | get single values from array 【发布时间】:2016-12-08 05:44:01 【问题描述】:我有一个问题持续了大约 4 个小时。
$getrank = DB::table('users')->select('codes')->orderBy('codes', 'desc')->get();
var_dump($getrank);
我看到了数组中的内容。
所以我得到了这个:
array(6)
[0] => object(stdClass)#62 (1)
["codes"]=> int(584)
[1] => object(stdClass)#64 (1)
["codes"]=> int(117)
[2] => object(stdClass)#65 (1)
["codes"]=> int(88)
[3] => object(stdClass)#66 (1)
["codes"]=> int(66)
[4] => object(stdClass)#67 (1)
["codes"]=> int(53)
[5] => object(stdClass)#68 (1)
["codes"]=> int(37)
但我希望它们分开。 我尝试了很多!
最后我认为这可能是我的答案:
echo $getrank[0]['codes'];
echo $getrank[1]['codes'];
echo $getrank[2]['codes'];
echo $getrank[3]['codes'];
echo $getrank[4]['codes'];
echo $getrank[5]['codes'];
但是没有。
我想要一个排名,我只需要前 5 个 ([0]-[4])。我还可以做些什么? 最后我希望每个值都是一个字符串!
【问题讨论】:
提示:查看array_slice()
和array_map()
。
好的,我把它分开了!谢谢!但现在我想要 dem 作为字符串!
所以你得到了数组中的前 5 个代码?或者你现在在哪里?
我有一个数组。数组读取数据库中我的表中的“代码”列。然后数组对它们进行排序(desc)。现在我想要前 5 个(最高值)作为单个字符串,这样我就可以使用它们来创建排名!
$getrank = DB::table('users')->select('codes')->orderBy('codes', 'desc')->take(5)->get( ) ?
【参考方案1】:
您可以尝试添加 toArray(),这会将结果从数据库转换为数组,因此您可以使用问题末尾提供的代码
$getrank = DB::table('users')->select('codes')->orderBy('codes', 'desc')->get()->toArray();
foreach($getrank as $rank)
echo $rank['codes'];
如果你想将代码值转换为字符串,那就是echo (string) $rank['codes'];
【讨论】:
【参考方案2】:只需使用pluck()
(或lists()
,pluck()
的别名)方法即可。
$codes = DB::table('users')->orderBy('codes', 'desc')->take(5)->lists('codes');
echo '<pre>';
foreach($codes as $key => $code)
echo 'code '.$key.': '.$code.php_EOL;
echo '</pre>';
Documentation here
【讨论】:
对我来说也一样:for($i = 0; $i != 5; $i++) $test = $getRanks[$i]->codes; print_r($test);但问题是,它看起来像这样: 584117886653 它的 1 个字符串!我需要 5 个 @MarcJansen 它看起来像一个字符串,因为您将它们一个接一个地打印出来,没有任何空格或逗号或任何东西。看看我的编辑,你会看到 5 个单独的行。【参考方案3】:好的,现在通过阅读您的 cmets,我了解您期望的结果是什么。
$getrank = array_map(
function ($user) return $user->codes; ,
DB::table('users')->orderBy('codes', 'desc')->take(5)->get()
);
这能得到你想要的吗?
【讨论】:
以上是关于Laravel 流明 |从数组中获取单个值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 laravel 和 mysql 数据库获取数组中的数组?
我想从 Laravel 5.7 的不同表中获取单个数组中的数据