2015-05-05 4 views
0

Я действительно надеюсь, что вы мне помочь с этой проблемой, я надеюсь, что это сделать Sence для вас - У меня есть этот псевдо пример цикла Еогеасп:как добавить ассоциативные массивы в другой массив внутри цикла - PHP

foreach_loop { 

$k1 = GetKey1(); 
$v1 = GetValue1(); 

$k2 = GetKey2(); 
$v2 = GetValue2(); 

$k3 = GetKey3(); 
$v2 = GetValue3(); 

// now I put those keys and values in associative array called DataArr 
$DataArr[$k1] = $v1; 
$DataArr[$k2] = $v2; 
$DataArr[$k3] = $v3; 

} 

Теперь мой вопрос, как я могу создать массив, где каждый индекс его содержит ассоциативный массив, созданный из этого foreach цикла и держать добавление к себе, как это:

 $resultArr = array(
    0 => "DataArr_from_loop1", 
    1 => "DataArr_from_loop2", 
    2 => "DataArr_from_loop3", 
    3 => "DataArr_from_loop4" 
    //...etc 
    ) 

и когда я проверить $resultArr[0] шо я uld получить ассоциативный массив следующим образом:

array (size=3) 
    'k1' => string 'v1' 
    'k2' => string 'v2' 
    'k3' => string 'v3' 

Мне очень нужна ваша помощь, спасибо заранее.

+0

все ваши три массива имеют одинаковую длину означает одинаковое количество элементов –

ответ

0

как насчет ...

$resultArr = array(); 

foreach($whatever as $thing) { 

    $k1 = GetKey1(); 
    $v1 = GetValue1(); 

    $k2 = GetKey2(); 
    $v2 = GetValue2(); 

    $k3 = GetKey3(); 
    $v2 = GetValue3(); 

    // now I put those keys and values in associative array called DataArr 
    $DataArr = array(); 
    $DataArr[$k1] = $v1; 
    $DataArr[$k2] = $v2; 
    $DataArr[$k3] = $v3; 

    $resultArr[] = $DataArr; 

} 
+0

wow man, который работал как магия, я действительно не могу вас поблагодарить, вы так много спасли меня :) – poxoson

0

http://php.net/manual/en/function.array-push.php

int array_push (array &$array , mixed $value1 [, mixed $... ]) 

или

<?php 
/** 
* @desc array_push and removes elements from the beginning of the array until it is within limit 
* @param array Array to push on to 
* @param mixed Passed to array push as 2nd parameter 
* @param int  Limit (default = 10) 
* 
* @return array New array 
*/ 
function array_push_limit($array,$add,$limit=10){ 
    array_push($array, $add);  
    do {   
     array_shift($array); 
     $size=count($array);   
    } while($size > $limit); 

    return $array; 
} 
?> 
---------- 
EXAMPLE: 
---------- 
<?php 
    $array=array(1, -5, 23, -66, 33, 54, 3);  
    print_r(array_push_limit($array, "HELLO", 4)); 
?> 
---------- 
OUTPUT: 
---------- 
Array 
(
    [0] => 33 
    [1] => 54 
    [2] => 3 
    [3] => HELLO 
) 
+0

он не работал. – poxoson

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