将字符串存储到数组中

1tuwyuhd  于 2021-06-18  发布在  Mysql
关注(0)|答案(4)|浏览(390)

在mysql中,我有一个字段名postcodes,类型是longtext。它存储几个用逗号分隔的邮政编码。我如何检索它并将其存储为数组以供其他使用?

yzuktlbb

yzuktlbb1#

// the final array all the post codes are collected.
$postCodes = [];

foreach (Model::pluck('postcodes') as $stringCodes)
    foreach (explode(',', $stringCodes) as $postCode) $postCodes[] = $postCode;
jc3wubiy

jc3wubiy2#

将其存储为mysql中的json字段,在检索和保存时分别对其进行编码和解码
在你的迁移中 $table->json('field_name'); 然后在模型中 protected $json = ['field_name']; 然后,每当您访问该字段时,laravel都会将其转换为数组,您不必调用任何显式方法。
文件-https://laravel.com/docs/5.7/eloquent-mutators#attribute-铸造

jdg4fx2g

jdg4fx2g3#

您可以使用php方法 explode() .
一个认为你做不到的,就是做一个 where x = x 在数据库里。
在模型中,可以设置mutator方法:

public function getPostcodesAttribute($value) {
    return explode(',',$value);
}

public function setPostcodesAttribute($value) {
    $this->attributes['postcodes'] = implode(',',$value);
}
f3temu5u

f3temu5u4#

假设结果存储在如下字符串中:

$s = "6000,5447"; //$s = $array->postcodes;

可以使用以下方法获取数组中索引上的每个值:

$values= explode(",", $s);
echo $values[0]; // 6000

或者更好。。您可以将其存储为json,并以数组格式将其检索为json。

相关问题