Συνάρτηση array_reduce
Η συνάρτηση array_reduce αναγάγει (reduces)
έναν πίνακα σε μία μόνο τιμή, χρησιμοποιώντας callback.
Στην πρώτη παράμετρο η συνάρτηση δέχεται έναν πίνακα, στη δεύτερη - το callback που θα εφαρμόζεται διαδοχικά σε κάθε στοιχείο του πίνακα.
Στην τρίτη προαιρετική παράμετρο
βρίσκεται η αρχική τιμή, από την οποία
θα ξεκινήσει η αναγωγή του πίνακα.
Από προεπιλογή αυτή η παράμετρος έχει
τιμή null.
Η συνάρτηση-callback δέχεται ως παραμέτρους δύο τιμές. Η πρώτη τιμή περιέχει την τιμή αποτελέσματος από την προηγούμενη επανάληψη. Στην περίπτωση της πρώτης επανάληψης περιέχει την τιμή της τρίτης παραμέτρου.
Και η δεύτερη τιμή του callback περιέχει το τρέχον στοιχείο του πίνακα.
Το callback θα εφαρμόζεται διαδοχικά σε κάθε στοιχείο του πίνακα. Αυτό που θα επιστρέφει στην τρέχουσα επανάληψη το callback, θα περνάει στην πρώτη παράμετρο του callback στην επόμενη επανάληψη.
Έτσι, το callback εφαρμόζεται διαδοχικά
σε κάθε στοιχείο του πίνακα
με τη σειρά και τελικά προκύπτει μια
τιμή. Αυτή η τιμή θα είναι το αποτέλεσμα
λειτουργίας της συνάρτησης array_reduce.
Σύνταξη
array_reduce(array $array, callable $callback, mixed $initial = null): mixed
Παράδειγμα
Ας βρούμε το άθροισμα των στοιχείων του πίνακα:
<?php
$arr = [1, 2, 3, 4, 5];
function func($prev, $elem)
{
return $prev + $elem;
}
$res = array_reduce($arr, 'func', 0);
echo $res;
?>
Αποτέλεσμα εκτέλεσης κώδικα:
15
Δείτε επίσης
-
τη συνάρτηση
array_map,
που εφαρμόζει συνάρτηση σε στοιχεία πίνακα -
τη συνάρτηση
array_walk,
που καλεί συνάρτηση για στοιχεία πίνακα -
τη συνάρτηση
array_filter,
που φιλτράρει πίνακα -
τη συνάρτηση
array_walk_recursive,
που καλεί αναδρομικά συνάρτηση για στοιχεία πίνακα