我正在开发一个项目,该项目将根据存储在文本文件中的数据生成大量表格。
无论如何,我希望我的代码看起来像这样.. function Phone($arg){
....
return $phone_nr
}
function Adress($arg){
....
return $adress_nr
}
function Arr_push($args) {
for ($i = 1; $i < func_num_args(); $i++) {
$keys[$i - 1] = func_get_arg($i);
}
foreach ($keys as $key) {
$arr_return[] = $key;
}
return $arr_return;
}
$Table1[] = Arr_push($DB,'Name:', 'John', 'Gender:', 'male');
$Table1[] = Arr_push($DB,'phone:', Phone('John'), 'Address', Adress('John'));
$table = new TableClass();
$table->show($Table1);
($DB is the database a 2d array with keys and values)
可以这样做吗?或者我必须为此
编写某种解析器"Parser method"
$Table1[] = Arr_push('phone:', '^phone,John', 'Address', ^adress,John');
in Arr_push function check if the string start with a '^'. In that case explode
it on the delimiter ',' and have switch loop for the different cases.
我一直在寻找这几天,所以我不得不提出这个问题。
扩展信息......
文件看起来像这样......
1 2 PRD~1 3 ISO 8859-1~1 4 0~2 1 Rundvirke Skog~2 2 VIRK1209.APT~3 1 311214~3 2 000000~3 3 1~803 4 311214~3 5 维美德~3 6 911.3~3 7 ........它一直在继续
使用糟糕的正则表达式进行管理:
%((\d{1,}\s?)+(?=~))|(((\d{1,}\s\d{1,})\s?\r?\n)(^(\w|\s|[å-ö]|[Å-Ö]|,|\.|
\?|-|\?|@|\*|/)+))%mx
将它读成像这样的二维数组...
[Var_id] [Type] [Data]
1 4 0
1 3 ISO 8859-1
1 2 PRD
2 2 VIRK1209.APT
2 1 Rundvirke Skog
3 6 911.3
3 7 Valmet
3 8 360.1/360.2
3 5 Valmet
3 3 1
3 2 000000
.....
我想要的输出是带有一些例子的表格
| Machine | Valmet | Type | 911.3
| ...... | ......
数据(维美德和911.3)由其[Var_id]和[类型]
调用因此,当做桌子时,我会很高兴有一个&#34;清洁&#34;代码
$array[] = arr_push($DB, 'Produktion:', '', 'Apteringsinstruktion:', '');
$array[] = arr_push($DB, 'FilNamn:', '^get, 1, 2', 'Filnamn:', '^get, 2, 2');
$array[] = arr_push($DB, 'Nollställ datum:', '^get, 11, 4', 'Indetitetsuppgifter', '^get, 2, 1');
$array[] = arr_push($DB, 'Lagrind datum:', '^get, 12, 4', 'Skapat datum:', '^get, 13, 4');
display_table($array);
How the input looks like now with the "parser" method.
有没有办法替换这个&#39; ^ get,var_id,type&#39;改为使用函数调用解析器?
有关StandforD标准的更多信息,请访问:http://www.skogforsk.se/en/About-skogforsk/Collaboration-groups/StanForD/
更多关于文件[var_id] [type]:http://www.skogforsk.se/PageFiles/60712/AllVarNo_ENG_120418.pdf。
背景: 收割机正在生产prd文件,包括所有的木材和volyme和时间等。市场上没有免费的观众(我所知道的)。所以我正在做PHP的prd查看器。
我不知道在哪里举办这个,所以我不想要一个sql server作为后端。
答案 0 :(得分:0)
function abc($a)
{
return '2'.$a;
}
$array = Array('a','^abc,a');
foreach ($array as $key => $value)
{
$a = substr($value,0,1);
if ($a=='^')
{
$e = explode(',',$value);
$func = substr($e[0],1);
unset($e[0]);
// return any second, thrird... commas
$value2 = implode(',',$e);
$value3 = call_user_func_array($func,Array($value2));
$array[$key] = $value3;
}
}
echo var_dump($array);
结果:
array (size=2)
0 => string 'a' (length=1)
1 => string '2a' (length=2)
答案 1 :(得分:0)
这就是我现在要去的路线。负面的部分是“函数调用”
'^ ABC,A'
将与语法突出显示中的其他字符串具有相同的颜色(使用netbeans)。 正在使用lambada进行测试,但它似乎无法在数组中运行。
为什么这不起作用?
$hello = function() {
return 'hello world';
};
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry", hello());
print_r($stack);