首页 > 解决方案 > 如何将数组从postgres db转换为laravel中的数组变量?

问题描述

如何将数组从 postgres db 转换为 laravel 中的数组变量?

我的postgres 数组结构

我有来自 laravel 的结果 var_dump :

0 => array:1 [
    "order_itemset" => "{8,11}"
  ]
1 => array:1 [
"order_itemset" => "{8,12}"
  ]
2 => array:1 [
"order_itemset" => "{17,10}"
  ]
]

我如何获取数据并将数据存储到数组变量中?

像这样

$data = [['8', '11'], ['8', '12'], ['17', '10']];

对不起我的英语不好,谢谢。

标签: jsonlaravelpostgresql

解决方案


看看这里。

如果您的 postgres 查询返回数组“[8,11]”而不是“排序”JSON“{8,11}”,则可以简化此代码

<?php
$values = array_column($your_data, 'order_itemset');
$values = array_map(function ($v) {
    preg_match("/^\{(.+)\}$/", $v, $matches);
    if ($matches[1]) {
        return explode(',', $matches[1]);
    }
    return null;
}, $values);
print_r($values);

推荐阅读