2013-02-24 2 views
0

Я нашел несколько полезных ответов, но все еще имею некоторые проблемы.Глобальный массив в php-проблемах

Я хочу поместить разные строки в глобальный массив, БЕЗ удаления других строк.

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

Я хочу, чтобы каждый из функций индексировать массив и добавить строки respectevly

Спасибо заранее!

Edit:

Спасибо на вашу помощь здесь является рабочая версия:

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

?

+0

и ваша проблема ...? –

+0

Что вы ожидаете от вывода, что его еще нет? Как и у вас, конечным результатом будет массив, содержащий 3 под-массива, каждый из которых является подматрицей. –

+0

Что конкретно означает «индексировать массив»? Возможно, вы имели в виду размещение списков под предполагаемыми именами клавиш? – mario

ответ

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" 
     } 
     } 
    } 
    */ 
?> 
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); 
+1

Довольно уверен, что вы не намереваетесь, чтобы ключ был «третьим» во всех трех функциях. – Floris

+0

Я написал одну функцию и скопировал тело функции, спасибо за замечание :) – gaskar

+0

работает! но как удалить номер массива? Я имею вывод как Array ([0] => Array ([first] => Array ([0] => 1 [1] => 1 [2] => 1)), но ему нужно только Array ([first] => Массив ([0] => 1 [1] => 1 [2] => 1)) – Bor

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

функция первого ($ global_arr) { \t $ global_arr [ 'первый'] [] = массив (1, 1, 1); \t \t возврата $ global_arr; } как именно использовать его в функция? – Bor

Смежные вопросы