PHP:使用return作为父数组的键/值对

时间:2014-01-21 15:37:45

标签: php arrays

好吧,在我重写了我的问题描述2次后,我会以某种方式减少抽象现在。

我需要一种方法来返回数组中的数据,以便此数组接受此返回的数据作为本机键/值对。

插图:

简单数组:

$a = array('a' => 'b');

我可以通过简单地调用$ a ['a']来清楚

来访问'a'的值

我现在需要一种方法来通过函数调用或黑客或其他东西来获得这个结果!

类似

$a = array(foo('a','b'));

问题是,当“foo”返回一个数组时,我的$ a(数组)的结构将如下所示:

array(array('a','b')) and not like array('a' => 'b')

并且会阻止我通过$ a ['a']

访问数据

我需要这个的原因是我在这个数组定义中按需实例化对象,并且还可以动态修改这些实例,但我确实需要两个不同的(同一个对象的函数)返回并且不想要复制过去一半的初始化。更进一步,我不想首先在数组之外声明对象实例,因为这将是绝对的过度杀伤,并且会完全破坏所有可读性。

那么..是否有可能将返回值提取到本地语言功能?

PS。我也不想迭代数组来重新处理数据

4 个答案:

答案 0 :(得分:0)

function foo($key) {
    $r = array(
       'a' => 'b',
        $key2 => $value2,
        $key3 => $value3,
        $key4 => $value4
        // ...
    );
    return $r[$key];
}

$a = foo('a'); // means $a = 'b';

它能解决你的问题吗?

答案 1 :(得分:0)

$a = foo('a','b');

function foo($x,$y) {
    return array($x => $y);
}

答案 2 :(得分:0)

如果foo()正在返回一个数组,为什么不呢;

$a = foo('a','b');

看起来很简单,对吗?

答案 3 :(得分:0)

最简单的方式:

$a[]= foo();

function foo() { 
    return array(1,2); 
}

或使用参考:

$value = NULL;
$a = array(foo($value), $value);

function foo(&$value) {
    $value = 'b';
    return 'a';
}