0

我找到了一些非常有用的答案,但仍然存在一些问题。

我想在全局数组中放置不同的行,而不删除其他行。

<?php

global $global_arr;

function first() {  
        ///some code
        global $global_arr; 

        $global_arr[] = array('first' => 
             array('1' , '1', '1'));


}

function second() { 
        ///some code
        global $global_arr; 

        $global_arr[] = array('second' => 
             array('2' , '2', '2'));

}
function third() { 
        ///some code
        global $global_arr; 

        $global_arr[] = array('third' => 
             array('3' , '3', '3'));

}

first();
second();
third();

print_r($global_arr);

我希望每个函数都索引数组并分别添加行

先感谢您!

编辑 :

感谢您的帮助,这里是工作版本:

function first($arr) { 

    $arr[] = array('first' => 
             array(1, 1, 1));
    return $arr; 
}

function second($arr) { 

    $arr[] = array('second' => 
             array(2, 2, 2));
    return $arr; 
} 

$arr = array();    

$arr = first($arr);
$arr = second($arr); 

print_r($arr);

输出 :

Array ( [0] => Array ( [first] => Array ( [0] => 1 [1] => 1 [2] => 1 ) ) [1] => Array ( [second] => Array ( [0] => 2 [1] => 2 [2] => 2 ) ) )

任何想法如何成为唯一的:

Array ( [first] => Array ( [0] => 1 [1] => 1 [2] => 1) , [second] => Array([0] => 2, [1] => 2, [2] => 2))

?

4

3 回答 3

1
$global_arr['third'][] = array('3.1' , '3.2', '3.3');
于 2013-02-24T20:36:07.093 回答
0

为什么要使用全局变量?你可以简单地写

function first($arr) { 

    $arr[] = array('first' => 
             array('3' , '3', '3'));
    return $arr; 
}

function second($arr) { 

    $arr[] = array('second' => 
             array('3' , '3', '3'));
    return $arr; 
}

function third($arr) { 

    $arr[] = array('third' => 
             array('3' , '3', '3'));
    return $arr; 
}

$arr = array();    

$arr = first($arr);
$arr = second($arr);
$arr = third($arr);
于 2013-02-24T20:34:58.827 回答
0

我不明白 - 这在所有三个功能中都是一样的。

顺便说一句,我只会使用一个功能,例如:

<?php

    // $arg1 = "one", "two" or "three"
    // $arg2 = ARRAY("data1.1", "data1.2", "data1.3") {
    function myfunc($arg1, $arg2) {
      if (!isset($my_arr)) { static $my_arr = ARRAY(); }
      $my_arr[$arg1][] = $arg2;
      return $my_arr; // Or code a getter and setter function
    }


    // Call, as often as you want - like:

    myfunc('one', ARRAY('1.1', '1.2','1.3'));
    myfunc('two', ARRAY('2.1', '2.2','2.3'));
    $arr = myfunc('one', ARRAY('1.4', '1.5','1.6'));

    print '<pre>';
    var_dump($arr);
    print '</pre>';



    /* result:

    array(2) {
      ["one"]=>
      array(2) {
        [0]=>
        array(3) {
          [0]=>
          string(3) "1.1"
          [1]=>
          string(3) "1.2"
          [2]=>
          string(3) "1.3"
        }
        [1]=>
        array(3) {
          [0]=>
          string(3) "1.4"
          [1]=>
          string(3) "1.5"
          [2]=>
          string(3) "1.6"
        }
      }
      ["two"]=>
      array(1) {
        [0]=>
        array(3) {
          [0]=>
          string(3) "2.1"
          [1]=>
          string(3) "2.2"
          [2]=>
          string(3) "2.3"
        }
      }
    }
    */
?>
于 2013-02-25T07:41:54.043 回答