说我有以下数组:
$baseData = [
['row1col1','row1col2','row1col3','row1col4','row1col5','row1col6'],
['row2col1','row2col2','row2col3','row2col4','row2col5','row2col6'],
['row3col1','row3col2','row3col3','row3col4','row3col5','row3col6'],
['row4col1','row4col2','row4col3','row4col4','row4col5','row4col6'],
...
];
我想创建一个可用于将现有数组值合并为新值的变量字符串。在这个例子中,我试图从第1,4,5列中获取值,将每个"行"中的值合并为一个结果。数组。对于每一行"行"对于数组,结果将是' row1col1row1col4row1col5' ......或者......' row3col1row3col4row3col5'。我尝试过以下无法解决的问题。
//identify columns to be merged
$mergeColumns = Array('col1', 'col4','col5');
$mergePattern = '';
foreach($mergeColumns as $col) {
$mergePattern .= "{$row['".$col."']}";
}
//expected result: $mergePattern = "{$row['col1']}{$row['col4']}{$row['col5']}"
foreach($baseData as &$row) {
$row['merged'] = $mergePattern;
}
它没有工作,因为在形成$ mergePattern变量时正在计算$ row变量。我收到错误:未定义的变量:行。
问题:如何在第一次迭代中形成模式,以便在第二次迭代中对其进行评估。