为数组键命名

时间:2015-09-24 13:00:04

标签: php arrays key

所以我有这段代码:

<?php
$csv = array();
$lines = file('file.csv', FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
    $csv[$key] = str_getcsv($value);
}

echo '<pre>';
print_r($csv);
echo '</pre>';
?>

给了我以下

[0] => Array
        (
            [0] => value1
            [1] => value2
            [2] => value3
            [3] => value4

如何命名我的钥匙?所以我没有看到0-1-2-3但是Name1-Name2-Name3等。

喜欢这个:

  [0] => Array
        (
            [Name0] => value1
            [Name1] => value2
            [Name2] => value3
            [Name3] => value4

3 个答案:

答案 0 :(得分:2)

现在我明白了!

在这种情况下,您需要做的就是将字符串文字连接到您生成的键的前面,如下所示: -

<?php
$csv = array();
$lines = file('file.csv', FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
    $csv['Name'.$key] = str_getcsv($value);
}

echo '<pre>';
print_r($csv);
echo '</pre>';
?>

答案 1 :(得分:0)

function csvToArray($filename, $delimiter = ',') {
        if (!file_exists($filename) || !is_readable($filename)) {
            return FALSE;
        }

        $header = NULL;
        $data = array();

        if (($handle = fopen($filename, 'r')) !== FALSE) {
            while (($row = fgetcsv($handle, 0, $delimiter)) !== FALSE) {
                if (count($row) > 0 && !is_null($row[0])) {
                    if (!$header) {
                        $header = $row;
                    } else {
                        $data[] = array_combine($header, $row);
                    }
                }
            }
            fclose($handle);
        }

        return $data;
    }

试试这个功能 $ filename是文件的完整路径 还可以将csv添加为您想要的第一行键,函数将使用第一行键

csv示例:

&#34; ID&#34;&#34;国家&#34;&#34;城市&#34;

&#34; 1&#34;&#34;我们&#34;&#34;阿班达&#34;

&#34; 2&#34;&#34;我们&#34;&#34;阿布维尔&#34;

答案 2 :(得分:0)

$keys = ['Name1', 'Name2', 'Name3', 'etc']; 
$csv[$key] = array_combine($keys, str_getcsv($value));

这有效

感谢Mark Ba​​ker