我有一个包含如下数据的数组:
$data=array(
array(1,1),
array(1,2),
array(1,3),
array(1,4),
array(1,5),
array(1,6),
array(1,7)
);
我想将一些操作数应用于数据组,例如
(伪代码)
// get all indexes , after the second index of each index
$d = $data[all indexes][1] /10 ; //devided by 10
// multiple the second index of first to fifteenth indexes by 2
$d2=$data[0-15][1] * 2;
我知道我可以使用foreach或任何其他循环,但我正在寻找更好的方法。
答案 0 :(得分:0)
好吧,我真的不明白为什么你不想使用循环,但如果它让你感觉更好,你可以使用“伪装循环”!
PHP提供了一些在数组中执行重复任务的函数,例如:
<强>代码强>
$newData = array_map (function($subArray)
{
return $subArray[1] / 10;
}, $data);
<强>输出强>
array (size=7)
0 => float 0.1
1 => float 0.2
2 => float 0.3
3 => float 0.4
4 => float 0.5
5 => float 0.6
6 => float 0.7
回答OP评论:
如果这是性能问题,那么array_map实际上比foreach或for循环慢。
我认为PHP没有内置库来处理矩阵操作。但是,PEAR的快速搜索显示了这个扩展名:
http://pear.php.net/package/Math_Matrix
我从未使用过,所以我不知道它是否有用,而且不再保留包装