Как изменить вывод определенной функции File_CSV_DataSource? - PullRequest
0 голосов
/ 01 ноября 2010

Следующая функция взята из сценария PEAR с именем File_CSV_DataSource и является анализатором CSV.

CSV-файл это:
имя, возраст, умение
Джон, 13 лет, знает магию
Танака, 8 лет, готовит суши
Хосе, 5, танцы сальса

Токовый выход этой функции выглядит следующим образом:

array (0 => array ('name' => 'john','age' => '13','skill' => 'knows magic',),1 =>array('name' => 'tanaka','age' => '8','skill' => 'makes sushi',),2 =>array ('name' => 'jose','age' => '5','skill' => 'dances salsa',),)

я пытаюсь добиться, чтобы функция вывела так:

array (array ('john','13','knows magic'), array('tanaka','8','makes sushi'), array ( 'jose','5','dances salsa'),)

, поэтому без 0 => и без заголовка столбца => , только значение ячеек

Можно ли как-нибудь изменить нижеприведенную функцию, чтобы она выводилась, как в моем примере выше?

public function connect($columns = array())
{
    if (!$this->isSymmetric()) {
        return array();
    }
    if (!is_array($columns)) {
        return array();
    }
    if ($columns === array()) {
        $columns = $this->headers;
    }

    $ret_arr = array();

    foreach ($this->rows as $record) {
        $item_array = array();
        foreach ($record as $column => $value) {
            $header = $this->headers[$column];
            if (in_array($header, $columns)) {
                $item_array[$header] = $value;
            }
        }

        // do not append empty results
        if ($item_array !== array()) {
            array_push($ret_arr, $item_array);
        }
    }

    return $ret_arr;
}

Заранее спасибо

1 Ответ

0 голосов
/ 01 ноября 2010

Просто используйте встроенный filegetcsv . Он сделает это за вас.

...