2015-03-13 85 views
0

我有一個多維數組,我想用var數組在其中插入一個其他數組。php - 在多維數組中插入一個數組

我的目標是用if語句插入一些元素數組。實際上我想要構建一種有條件的數組。

下面的例子

$inserted_array[] = array( 
    'name' => 'name', 
    'desc' => 'a description', 
    'id' => 'an id', 
    'type' => 'image', 
    'std' => '', 
); 
$inserted_array[] = array(
    'name' => 'name', 
    'desc' => 'a description', 
    'id' => 'an id', 
    'type' => 'image', 
    'std' => '', 
); 

$main_arrays[] = array(
    'id' => '1234', 
    'title' => 'a title', 
    'icon' => 'icon-1', 
    'fields' => array(
     array( 
      'name' => 'name', 
      'desc' => 'a description', 
      'id' => 'an id', 
      'type' => 'image', 
      'std' => '', 
     ), 
     //$inserted_array here for example 
     array(
      'name' => 'name', 
      'desc' => 'a description', 
      'id' => 'an id', 
      'type' => 'image', 
      'std' => '', 
     ), 
    ) 
); 

我如何才能做到這樣的事情?

回答

1

如果你想在$inserted_array插入$main_arrays[]['fields]在給定$position

您可以通過使用array_splice功能

array_splice($main_arrays[$index]['fields'], $position, 0, $inserted_array); 

$index是在至極的$main_arrays指數要插入$inserted_array

實現它

$position是你想插入你的陣列的位置

+0

謝謝您的回答。有沒有辦法選擇插入數組的地方,這是我的主要問題。順便說一句,你的答案中有一個錯字(字段)。 – freaky 2015-03-13 20:12:00

+0

我找到了我需要的php函數:array_splice。 – freaky 2015-03-13 20:17:17

+0

@freaky我沒有很好地理解你的問題,只要編輯它與array_splice,如果它可以幫助某人:) – 2015-03-13 20:26:56

-1

我相信的,你想要的是:

$mainID = 1234; 
$main_arrays[$mainID] = array(
    'title' => 'a title', 
    'icon' => 'icon-1', 
    'fields' => array() 
); 

$main_arrays[$mainID]["fields"][] = array( 
    'name' => 'nameA', 
    'desc' => 'a description', 
    'id' => 'an id', 
    'type' => 'image', 
    'std' => '', 
); 


$main_arrays[$mainID]["fields"][] = array(
    'name' => 'nameB', 
    'desc' => 'a description', 
    'id' => 'an id', 
    'type' => 'image', 
    'std' => '', 
); 


foreach($main_arrays as $id => $inserted_array) { 
    print("ID: ".$id."\n"); 
    print_r($inserted_array); 
} 

OUTPUT:

ID: 1234 
    Array 
    (
     [title] => a title 
     [icon] => icon-1 
     [fields] => Array 
      (
       [0] => Array 
        (
         [name] => nameA 
         [desc] => a description 
         [id] => an id 
         [type] => image 
         [std] => 
        ) 

       [1] => Array 
        (
         [name] => nameB 
         [desc] => a description 
         [id] => an id 
         [type] => image 
         [std] => 
        ) 

      ) 

    )