-3

$_REQUEST関数を実行して、送信されたすべての変数をループして変更する簡単な方法があるかどうか疑問に思っていました。

たとえば、私が与えられ$_REQUEST['a']た値がstuff$_REQUEST['b']、値がだったとしますmore stuff。の値が become になり、の値が になる$_REQUEST[]ように、配列全体を書き換えたいと思います。渡された各要素の名前がす​​べてわかりませ$_REQUEST['a']myfunction('stuff')$_REQUEST['b']myfunction('more stuff')$_REQUEST.

4

3 に答える 3

1

個人的には、特別な 配列を変更するのは気分が悪いので、$_REQUESTのため、値を変更して別の配列を作成します。

$requestProcessed = array_map('myfunction', $_REQUEST); 

このようにして、変更された値を取得ても元の値にアクセスできます (必要な場合)。

$_REQUEST配列自体を変更しても問題ない場合は、そのarray_walkほうがよいでしょう (Praveen Kumar の提案による)。

于 2013-04-09T00:52:17.447 に答える
1

関数を使用しarray_walkて配列を渡すことができます。例は次のとおりです。

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

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

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

echo "Before ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";

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

同じように、あなたの問題に対して、これを行うことができます:

function stuff() {
   ///
}

$_REQUESTそして今、このように関数を見てみましょう:

array_walk($_REQUEST, 'stuff', 'fruit');
于 2013-04-09T00:47:02.680 に答える