簡體   English   中英

PHP中的全局數組問題

[英]Global array in php issues

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

我想在全局數組中放入不同的行,而不必刪除其他行。

<?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))

$global_arr['third'][] = array('3.1' , '3.2', '3.3');

為什么要使用全局變量? 你可以簡單地寫

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);

我不明白-這三個功能都相同。

順便說一句,我只使用一種功能,例如:

<?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"
        }
      }
    }
    */
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM