php - 如何从 PHP 中的数组中获取字符串 (Foreach)

标签 php laravel foreach

我想使用 foreach 获取数组的结果。但是我得到的只是 1 个数组,即使在使用 Foreach 之前,有 9 个数组。 如何从我下面列出的 9 个数组的结果中获取字符串?

我使用 PHP 7.0 版和 Laravel 5.0 框架。 $paramsUserId 将填充特定的 user_id,例如“10729”

private function itemNotReco($paramsUserId = null)
{
    try{
        $result = DB::connection('read')->table('recommendation_events')
            ->where('user_id', $paramsUserId);

        if ($result) {
            $result = $result->distinct()->get(['item_id']);
        }

        foreach ($result as $re){
            $re = $re->item_id;
        }
        return $re;

    } catch (\Exception $e) {
        $log = ['Service' => 'RecommendationEventService', 'function' => 'getItemNotRecommendation'];
        logError($e, $log);
    }
}

结果(使用 Postman):

"77178"

下面是我在没有使用 foreach 的情况下使用如下代码得到的 9 个数组的结果

private function itemNotReco($paramsUserId = null)
{
    try{
        $result = DB::connection('read')->table('recommendation_events')
            ->where('user_id', $paramsUserId);

        if ($result) {
            $result = $result->distinct()->get(['item_id']);
        }
        return  array_column($result, 'item_id');
    } catch (\Exception $e) {
        $log = ['Service' => 'RecommendationEventService', 'function' => 'getItemNotRecommendation'];
        logError($e, $log);
    }
}

结果:

array:9 [
  0 => 77196
  1 => 77263
  2 => 77202
  3 => 77262
  4 => 77275
  5 => 77259
  6 => 77345
  7 => 77329
  8 => 77178
]

我想要的结果是这样的(使用Postman)

"77196", "77263", "77202", "77262", "77275", "77259", "77345", "77329", "77345", "77329", "77178"

最佳答案

它只会返回 1 个数据,因为 return 在第一个循环中停止。有两种方法可以解决您的问题:

1. 使用 echo 而不是 return

2. 像这样将数据存储在新变量中:

private function itemNotReco($paramsUserId = null)
{
    try{
        $result = DB::connection('read')->table('recommendation_events')
            ->where('user_id', $paramsUserId);

        if ($result) {
            $result = $result->distinct()->get(['item_id']);
        }

        $data = [];
        foreach ($result as $re){
            $data[] = $re->item_id;
        }
        return $data;

    } catch (\Exception $e) {
        $log = ['Service' => 'RecommendationEventService', 'function' => 'getItemNotRecommendation'];
        logError($e, $log);
    }
}

关于php - 如何从 PHP 中的数组中获取字符串 (Foreach),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54602920/

相关文章:

php - 初学者帮助 : PHP MySQL (PDO) Function

php - 上传 Wordpress 站点

php - 我们可以更改 Laravel 中链接中的请求吗

php - 将 Laravel 中的集合转换为数组,Laravel 5

php - 如何从 WP_Post 对象获取标题

xml - 使用PowerShell在XML文件中进行ForEach

php - 结帐 woocommerce wordpress 中的简短说明

php - cakephp 错误 - 验证显示两次

php - Laravel JWT - 使用 Javascript 使用你自己的 API

java - 如何将 ArrayList 中对象的所有值的总成本相加?