Array walk()

Från Wiki.linux.se
Version från den 11 augusti 2024 kl. 06.25 av Admin (diskussion | bidrag) (Skapade sidan med '=array_walk= (PHP 4, PHP 5, PHP 7, PHP 8) array_walk — Tillämpa en användardefinierad funktion på varje medlem i en array =Beskrivning= array_walk(array|object &$array, callable $callback, mixed $arg = null): true Tillämpar den användardefinierade callback-funktionen på varje element i arrayen. array_walk påverkas inte av arrayens interna pekare. array_walk går igenom hela arrayen oberoende av pekarens position. =Parametrar= array Indata-arrayen. callback...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

array_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

array_walk — Tillämpa en användardefinierad funktion på varje medlem i en array

Beskrivning

array_walk(array|object &$array, callable $callback, mixed $arg = null): true Tillämpar den användardefinierade callback-funktionen på varje element i arrayen.

array_walk påverkas inte av arrayens interna pekare. array_walk går igenom hela arrayen oberoende av pekarens position.

Parametrar

array Indata-arrayen.

callback Typiskt sett tar callback två parametrar. Värdet på arrayparametern som den första, och nyckeln/index som den andra.

Notera: Om callback behöver arbeta med arrayens verkliga värden, specificera den första parametern av callback som en referens. Då kommer alla ändringar som görs på dessa element att ske i den ursprungliga arrayen själv.

Notera: Många interna funktioner (till exempel strtolower()) kommer att generera en varning om fler än det förväntade antalet argument skickas in och de är inte direkt användbara som en callback.

Endast värdena i arrayen kan potentiellt ändras; dess struktur kan inte ändras, d.v.s. programmeraren kan inte lägga till, ta bort eller omordna element. Om callback inte respekterar detta krav är funktionens beteende odefinierat och oförutsägbart.

arg Om det valfria arg-parametern tillhandahålls, kommer den att skickas som den tredje parametern till callback.

Returvärden

Returnerar alltid true.

Fel/Undantag

Från och med PHP 7.1.0 kommer ett ArgumentCountError att kastas om callback-funktionen kräver fler än 2 parametrar (värdet och nyckeln till arraymedlemmen), eller fler än 3 parametrar om arg också skickas. Tidigare skulle i detta fall ett fel av nivå E_WARNING genereras varje gång array_walk anropar callback.

Ändringslogg

Version Beskrivning 8.2.0 Returtypen är nu true; tidigare var det bool. 8.0.0 Om callback förväntar sig att den andra eller tredje parametern ska skickas med referens, kommer denna funktion nu att avge en E_WARNING.

Exempel

Exempel #1 array_walk-exempel

<?php
$frukter = array("d" => "citron", "a" => "apelsin", "b" => "banan", "c" => "äpple");

function test_alter(&$item1, $key, $prefix)
{
    $item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
    echo "$key. $item2\n";
}

echo "Före ...:\n";
array_walk($frukter, 'test_print');

array_walk($frukter, 'test_alter', 'frukt');
echo "... och efter:\n";

array_walk($frukter, 'test_print');
?>

Exempel #2 array_walk-exempel med anonym funktion

<?php
$element = ['a', 'b', 'c'];

array_walk($element, function ($value, $key) {
  echo "{$key} => {$value}\n";
});

?>