phpexplode()存储从测试过滤器到索引[0]的所有值


php explode() storing all values from test filt to index [0]

我是一名学生,目前正在学习PHP,很难让explode()函数按我想要的方式工作。

以下文本文件"假期.txt"包含:

"54321", "Big Island Hawaii", "2999.00", "Best beaches big volcano"
"87654", "Cruise Caribbean", "3500.00", "Ocean view with balcony Cancun Jamaica etc."
"09876", "Rome and Madrid", "3999.00", "I see Italy I see Spain"
"32198", "Ski Tahoe", "1200.00", "Ski all day Gamble all night"

我试图将其放入一个由逗号分隔的数组中。使用print_r(),我可以看到它都进入了数组的第一个索引。这是我的代码:

function displaySpecials() {
    $prodString = include("vacation.txt");
    $vacArray = explode(',', $prodString ); 
        print_r($vacArray);
}

这是输出:

"54321","夏威夷大岛","2999.00","最佳海滩大火山"87654","Cruise Caribbean","3500.00","海景带阳台"坎昆牙买加等"09876","罗马和马德里","3999.00","我明白了意大利我看到西班牙"32198","滑雪太浩","1200.00","全天滑雪"通宵赌博"阵列([0]=>1)

我已经搜索并阅读了我能找到的关于explode()的所有内容,但我不明白为什么会发生这种情况。我的最终目标是在一个有4行4列的表中输出一个多维数组,以显示文本文件中的16个值。

我们非常感谢所有的帮助。提前谢谢!

include语句包括并计算指定的文件。

include将评估其中的内容,基本上包括其他php脚本。

你需要获取它的内容。

下面我已经使用文件来获取文件线宽的内容。

function displaySpecials() {
    $lines = file("vacation.txt"); // will return lines in array
    foreach($lines as $line){ // loop for each line
        $vacArray[] = explode(",", $line); // insert resulting array to last index of $varArray
    } 
    print_r($vacArray);
    return $vacArray;
}

此外,该文件显示为常规.csv,您可以使用fgetcsv。查看官方文档中的示例。

由于这基本上是一个csv文件,我建议使用fgetcsv,类似于以下内容:

if (($h = fopen('vacation.txt', 'r')) !== false) {
    while (($data = fgetcsv($h, 1000, ',')) !== false) {
        // Fetch the data here
    }
}

也可以选择使用str_getcsv:

$data = array_map('str_getcsv', file('vacation.txt'));

尝试用file_get_contents("vacation.txt")替换include("vacation.txt")

包括

include语句包括并计算指定的文件。

文件集内容

将整个文件读取到字符串中

你的代码应该是这样的:

function displaySpecials() {
    $prodString = file_get_contents("vacation.txt");
    $vacArray = explode(',', $prodString ); 
        print_r($vacArray);
}