【问题标题】:Get array keys when in argument in PHP在PHP中的参数中获取数组键
【发布时间】:2010-12-02 00:27:26
【问题描述】:

我在函数内部传递了一些数组作为参数。例如:

测试($someArray[2][3]);

在这种情况下,函数获取存储在 (2,3) 中的值,但有一种方法可以从函数内部获取键值 (2,3) 以使用?该函数应使用值的 x,y 位置进行一些计算。

谢谢!

【问题讨论】:

    标签: php arrays function key


    【解决方案1】:

    不是这样,不。如果您调用test($someArray[2][3]),那么PHP 将只传递该值,而不传递该值来自的任何引用。无论如何单独传递值更干净

    function test($x, $y, $value) { /* do something */ }
    

    【讨论】:

    • 是的,这是最简单的方法。认为有一些黑暗的功能可以完成这项工作,但好吧,我必须“正确”地完成它。谢谢大家!
    【解决方案2】:

    不,下标将在函数接收到它之前执行。

    所以如果你的代码是......

    $someArray = array(
       2 => array(3 => 'Hello');
    );
    
    function test($arg) {
    
    }
    
    test($someArray[2][3]);
    

    那么$arg 将是一个字符串Hello。它不知道也不关心它来自哪里。

    【讨论】:

    • 不,$arg 将是 NULL 并引发通知,因为您创建的数组名为 $arr,而不是 $someArray..:P
    【解决方案3】:

    您只在[2][3] 处传递单个元素;一旦进入函数,就没有数组了。如果你需要位置,你应该分别传递数组/元素和索引:

    test($someArray, 2, 3); // if you might access other elements too
    

    或:

    test($someArray[2][3], 2, 3); // if you don't need other elements
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      相关资源
      最近更新 更多