我有一个二维PHP数组(矩阵).
无论如何从这个矩阵中提取(回显或保存到另一个变量)一行或一列而不迭代元素?
假设我们有这个矩阵:
A A A B
A A A C
A B C D
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
display_and_cut_first_line()
//Matrix after this step:
A A A C
A B C D
display_and_cut_last_column()
//Matrix after this step:
A A A
A B C
Run Code Online (Sandbox Code Playgroud)
它只需要用于边缘元素(第一行/最后一行,第一列/最后一列).我在想某种方式使用切片,但没有设法做到这一点.
提取线很简单:( array_pop最后一行)和array_shift(第一行)为您完成此操作.
在PHP 5.5上提取列很容易array_column.对于早期版本中,它必须与手工完成array_map或array_walk和流行/移位功能,依次对每一行操作:
function extract_last_column(&$array) {
$column = array();
array_walk($array, function(&$row) use(&$column) {
$column[] = array_pop($row);
});
return $column;
}
Run Code Online (Sandbox Code Playgroud)
如果需要,你可以通过使用array_slice而不是array_pop和array_shift- 来概括它,但是对于这些特定的操作,它会更慢.
| 归档时间: |
|
| 查看次数: |
468 次 |
| 最近记录: |