<?php
// data to convert
$string = '| Data1 | Data2 | Data3 |
----------------------------
| x | y | z |
| p | q | r |';
// container to collect data in
$data = array();
// split the string into lines
$lines = explode("\n", $string);
// pull first line from the array
$names = array_shift($lines);
// remove delimiters from beginning and end
$names = trim($names, '| ');
// split at | while ignoring spaces and empty results
$names = preg_split('/\s*\|\s*/', $names);
// remove --------------- line
array_shift($lines);
// walk remaining lines
foreach ($lines as $line) {
// container to collect data of row in
$row = array();
// remove delimiters from beginning and end
$line = trim($line, '| ');
// split at |
$line = explode('|', $line);
foreach ($line as $i => $value) {
// identify key by looking up in $names
$key = $names[$i];
// remove spaces
$row[$key] = trim($value);
}
// add row to data set
$data[] = $row;
}
var_dump($data);
あなたはあなたの新しい変数名を表示するには
echo '<pre>';
var_export(array_diff(get_defined_vars(), array(array())));
echo'</pre>';
を使用し、その後PHP Extract()
extract($your_array, EXTR_PREFIX_ALL, 'prefix_if_needed');
それらを抽出することができ
$data = array(
0 => array(
'Data1' => 'x',
'Data2' => 'y',
'Data3' => 'z',
),
1 => array(
'Data1' => 'p',
'Data2' => 'q',
'Data3' => 'r',
),
);
連想配列を調べます。 –
組み込み関数はありませんが、手動で行うことができます。これまで何をしていますか? –
ファイル内のデータの正確な構造は何ですか?あなたは、JSON/XMLのような、すでに構文解析可能な方法でデータを格納するか、正規表現で解析して爆発するなどのいくつかのオプションを持っています。 – Alex