實例
發送數組中的值到使用者自訂函數,並傳回字串:
<?php function myfunction($v1,$v2) { return $v1 . "-" . $v2; } $a=array("Dog","Cat","Horse"); print_r(array_reduce($a,"myfunction")); ?>
定義和用法
array_reduce () 函數將陣列中的值傳送到使用者自訂函數,並傳回字串。
註解:如果陣列是空的或初始值未傳遞,則函數會傳回 NULL。
語法
array_reduce(array,myfunction,initial)
參數 | #描述 |
array | 必需。規定數組。 |
myfunction | 必要。規定函數的名稱。 |
initial | 可選。規定發送到函數處理的第一個值。 |
技術細節
#傳回值: | #傳回結果值。 |
PHP 版本: | 4.0.5+ |
#更新日誌: | 自PHP 5.3.0 起,initial 參數接受多重型別(混合的),PHP 5.3.0 之前的版本只支援整數。 |
更多实例
实例 1
带 initial 参数:
<?php function myfunction($v1,$v2) { return $v1 . "-" . $v2; } $a=array("Dog","Cat","Horse"); print_r(array_reduce($a,"myfunction",5)); ?>
实例 2
返回总和:
<?php function myfunction($v1,$v2) { return $v1+$v2; } $a=array(10,15,20); print_r(array_reduce($a,"myfunction",5)); ?>
array_reduce的强大不仅如此。看下面的例子。将数组$arr的首个元素弹出,作为初始值,避免min($result['min'], $item['min'])中$result为空。
否则最终结果min是空的。
$arr = array( array('min' => 1.5456, 'max' => 2.28548, 'volume' => 23.152), array('min' => 1.5457, 'max' => 2.28549, 'volume' => 23.152), array('min' => 1.5458, 'max' => 2.28550, 'volume' => 23.152), array('min' => 1.5459, 'max' => 2.28551, 'volume' => 23.152), array('min' => 1.5460, 'max' => 2.28552, 'volume' => 23.152), ); $initial = array_shift($arr); $t = array_reduce($arr, function($result, $item) { $result['min'] = min($result['min'], $item['min']); $result['max'] = max($result['max'], $item['max']); $result['volume'] += $item['volume']; return $result; }, $initial);
总之,这种写法比foreach更优雅,更少的定义变量。推荐使用。
以上是php傳送數組中的值到使用者自訂函數並傳回一個字串的函數array_reduce()的詳細內容。更多資訊請關注PHP中文網其他相關文章!