4

関数にパラメータを送信する必要があります

array_intersect_key()

ただし、2つの配列を送信する必要がある場合もあれば、3つ以上の配列を送信する必要がある場合もあります。

array_intersect_key($arr_1, $arr_2);
OR
array_intersect_key($arr_1, $arr_2, $arr_3, $arr_4);
4

6 に答える 6

7

このような独自の関数を作成したい場合、重要なのは次を使用することfunc_get_args()です。

function mumble(){
    $args = func_get_args();
    foreach ($args as $arg){
        ... whatever
    }
}

複数の引数を使用して呼び出したい場合は、「実行する」か、次を使用しますcall_user_func_array()

$args = array();
... append args to $args
call_user_func_array('array_intersect_key', $args);
于 2012-04-12T17:21:15.617 に答える
0
call_user_func_array('foo', array('foo', 'bar', 'foo N'));

function foo($param1, $param2, $paramN) {
    // TADÁÁÁ
}
于 2012-04-12T17:20:34.160 に答える
0

これを処理するためのfunc_get_args()メソッドを調べてください。何かのようなもの:

function my_function() {
    $numArgs=func_num_args();
    if($numArgs>0) {
        $argList=func_get_args();
        for($i=0;$i<$numArgs;$i++) {
            // Do stuff with the argument here
            $currentArg=$argList[$i];
        }
    }
}
于 2012-04-12T17:21:03.023 に答える
0

標準機能について質問する前に、まずhttp://php.netサイトを参照してください。ここで、すべての質問に答えることができます。

http://php.net/manual/en/function.array-intersect-key.php

http://php.net/manual/en/function.func-get-args.php

http://php.net/manual/en/ref.funchand.php

私はあなたの質問を得ました、ここにあなたがそれをすることができる1つの方法があります:

$arr_of_arr = array($arr1, $arr2, $arr3, ..., $arrn);

また

$arr_of_arr = func_get_args();

if(count($arr_of_arr) > 1){
    for($i = 0; $i < count($arr_of_arr) - 1; $i++){
        if(! $i){
            $intersec = array_intersect_key($arr_of_arr[0], $arr_of_arr[1]);
            $i = 2;
        }
        else{
            $intersec = array_intersect_key($intersec, $arr_of_arr[$i++]);
        }
    }
}

$intersecこれで交差点が含まれます。

于 2012-04-12T17:24:43.963 に答える
0
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br />";
    $arg_list = func_get_args();
    foreach($arg_list  as $arg) {
        if(is_array($arg)) print_r($arg)."<br />";  
        else echo "<br />".$arg;
    }
}

foo(array(1,2,3), 2, 3);
于 2012-04-12T17:33:48.070 に答える
-1

にはarray_intersect_key、複数の入力を許可するプロトタイプがすでにあります。

array array_intersect_key ( array $array1 , array $array2 [, array $ ... ] )

ですから、私はそこで問題を実際には見ていません。

于 2012-04-12T17:19:03.493 に答える