gpt4 book ai didi

php - 在 PHP 中定义大量数据的最佳方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 21:16:21 26 4
gpt4 key购买 nike

我有一个 PHP 应用程序,它需要硬编码数据的大型二维数组。我目前只是在每个脚本执行开始时包含的脚本中定义了它。

我想知道是否有人对如何执行此操作有更好的想法。

我的脚本如下所示。除了我有更多的行,每一行都有更多的字段。

function getData() {
return array(
1 => array('name'=>'a something', 'price'=>123, 'field1'=>1, 'field2'=>3, 'field3'=>2),
2 => array('name'=>'b something', 'price'=>123, 'field1'=>3, 'field2'=>3, 'field3'=>2),
3 => array('name'=>'c something', 'price'=>234, 'field1'=>2, 'field2'=>3, 'field3'=>2),
4 => array('name'=>'d something', 'price'=>345, 'field1'=>8, 'field2'=>3, 'field3'=>2),
5 => array('name'=>'e something', 'price'=>655, 'field1'=>12, 'field2'=>3, 'field3'=>2),
6 => array('name'=>'f something', 'price'=>124, 'field1'=>11, 'field2'=>3, 'field3'=>2),
);
}

每一行都有相同的字段。所以它非常像一个数据库表结果集。我想我可以把它放在数据库表中,但我发现这个脚本更容易编辑,而且我认为它运行起来比查询数据库要快得多。

我目前的解决方案的问题是它可能很难阅读,因为字段太多了。我想要的是一个易于阅读和编辑的系统,但它也必须非常快。

数据库表会更好吗?或者从电子表格中读取 CSV 文件?

最佳答案

一般来说,以任何方便的方式写入您的数据,可能是 CSV 或类似的方式。创建一个可以将该数据处理成您需要的格式的函数。缓存处理后的数据,这样就不需要每次都这样做。

function getData() {
$cache = 'data.dat';

if (file_exists($cache)) {
return unserialize(file_get_contents($cache));
}

$data = <<<DATA
a something, 123, 1, 3, 2
b something, 123, 3, 3, 2
...
DATA;

$data = array_map(function ($row) {
$row = array_map('trim', explode(',', $row));
return array_combine(array('name', 'price', 'field1', 'field2', 'field3'), $row);
}, explode("\n", $data));

file_put_contents($cache, serialize($data));
return $data;
}

在上面的示例中,我只是使用 HEREDOC 字符串来存储数据。您可能希望将其放入外部 CSV 文件或可从某处自动生成的 XML 文件或满足您需要的任何内容。

如果它非常大,将它存储在数据库中可能是更好的主意。像 SQLite 这样的轻量级工具就可以了。

关于php - 在 PHP 中定义大量数据的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com