2017-06-19 151 views
1

雖然着名科學家正在研究其他維度,但我試圖弄清楚如何使用動態數據填充多維數組。使用數據填充多維數組

我需要添加從一個隨機函數計算的未確定數量的值。

function my_random ($min, $max) { 

     $random_var = rand($min, $max); 
     return $random_var; 
    } 

我想我的陣列看起來像這樣:

$array_example = [ 
       'id' => $id, 
       'value1' => $value1, 
       'value2' => $value2 

      ]; 

...也許是這樣的:

$array[$i] = [ 
       'id' => $id, array(
        'value1' => $value1, 
        'value2' => $value2 
       ) 
     ]; 

我想出一個簡單的for循環會做的伎倆所以我試過這個:

for ($i = 1; $i <= $amount; $i++) { 

    $array[$i] = $i; 
    $array[$i] = [ 
      'id' => $i, array(
       'value1' => $value1, 
       'value2' => $value2 
      ) 
     ]; 
} 

......但是它出來都是錯誤的(從控制檯):

string(103) "{"id":2,"value1":[14,{"1":{"id":1,"0":{"value1":[14],"value2":[11]}}},13],"value2":[11,19]}"

for循環似乎嵌套它們。我嘗試了不同的函數,希望得到它的正確性:range()獲取id,然後用數據,array_push()填充它,甚至嘗試合併和合並。

thread使得它看起來很簡單:

$array[] = "item"; 
$array[$key] = "item"; 
array_push($array, "item", "another item"); 

但這種方法只會工作來創建索引。

如何動態將這些值插入到每個索引中?我最終需要的是能夠訪問陣列和它的值如下:

$array[0]["value1"]. 

謝謝。

+0

目前尚不清楚你想要什麼確切的輸出。有兩個預期的輸出。代碼將產生另一個不同的數組。請明確點。另外'my_random'函數的目的是什麼?你沒有在任何地方使用它。 –

+0

我在我的代碼中使用它,我只是沒有在這裏插入它。我提到隨機函數的原因是爲了說明爲什麼我需要用for循環進行迭代,同時從隨機函數中添加日期。因此,對於每個索引(0,1,2),將會有一個隨機值需要插入到每個索引中。 –

+0

要獲得高質量的答案,您需要發佈質量問題。向我們展示你的輸入數組的樣子。你想要隨機元素,元素的隨機數還是兩者? – mickmackusa

回答

2

關聯數組

一種array in PHP的索引數組實際上是一個有序圖。地圖是一種將值與鍵關聯的類型。這種類型針對多種不同用途進行了優化;它可以被看作是一個數組,列表(向量),散列表(一個映射的實現),字典,集合,堆棧,隊列等等。由於數組值可以是其他數組,因此樹和多維數組也是可能的。

以下函數有一個可選的整數參數,或defaults to 10,併發起for loop創建associative array()sindexed Array

<!DOCTYPE html><html><head></head><body> 
<?php 
    function createArrayOf($quantity = 10) { 
     $arr = []; 
     for ($i = 0; $i < $quantity; ++$i) { 
      $arr[ $i ] = array( 
       "value_1" => "some value", 
       "value_2" => "another value" 
      ); 
     } 
     return $arr; 
    } 
?> 
<pre><?php var_export(createArrayOf(5)); ?></pre> 
</body></html> 

輸出使用var_export()其中:

被構造關於給定變量的信息。它與var_dump()類似,但有一個例外:返回的表示形式是有效的PHP代碼。

array (
    0 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
    1 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
    2 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
    3 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
    4 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
) 
+0

當你知道語法時就很簡單。 :) 謝謝! –

+0

@DanSebastian - NP; YW。感謝接受。我已經添加了我承諾的額外細節。快樂的編碼! –