使用数组的索引进行操作而不使用php中的循环

时间:2014-03-01 07:35:33

标签: php arrays grouping operation

我有一个包含如下数据的数组:

$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或任何其他循环,但我正在寻找更好的方法。

1 个答案:

答案 0 :(得分:0)

好吧,我真的不明白为什么你不想使用循环,但如果它让你感觉更好,你可以使用“伪装循环”!

PHP提供了一些在数组中执行重复任务的函数,例如:


array_map

的示例

<强>代码

$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

我从未使用过,所以我不知道它是否有用,而且不再保留包装