Laravel Collection将数组转换为字符串

时间:2015-08-18 16:56:20

标签: eloquent laravel-5.1

我有一个像下面这样的集合,我想要回应这个价值。

我找到了一种方法(它是原始的)但是想要学习Laravel方式(所以它会很干净)在我的视图文件中使用foreach。我使用routes.php文件,因为它不是生产版本。

Route::get('getall', function() {
    $album= Album::FindOrFail(2)->userImage;
    for($i=0; $i<$album->count(); $i++)
    {
        echo $album[$i]['value'];
    }
});

1 个答案:

答案 0 :(得分:1)

首先检查您的查询是否至少有一行或多行,在将空数组或对象传递给循环之前检查结果是一个好习惯。 要回答你的问题,你可以这样做:

debug_csv_rdd = (sc.textFile("debug.csv")
  .filter(lambda x: x.find('header') == -1)
  .map(lambda x : x.replace("NULL","0")).map(lambda p: p.split(','))
  .map(lambda x:Row(c1=int(x[0]),c2=int(x[1]),c3=int(x[2]),c4=int(x[3]))))

debug_csv_df = sqlContext.createDataFrame(debug_csv_rdd)
debug_csv_df.registerTempTable("debug_csv_table")
sqlContext.cacheTable("debug_csv_table")

r0 = sqlContext.sql("SELECT c2 FROM debug_csv_table WHERE c1 = 'str'")
r0.registerTempTable("r0_table")

r0_1 = (r0.flatMap(lambda x:x)
    .zipWithIndex()
    .map(lambda x: Row(c1=x[0],id=int(x[1]))))

r0_df=sqlContext.createDataFrame(r0_2)
r0_df.show(10) 
希望这有帮助。