2013-04-30 18 views
36

Çok boyutlu bir dizilim var $ md_array ve alt tablolara recipe_type ve mutfağı bir tablodan okuyan bir döngüden gelen mutfaklara daha fazla öğe eklemek istiyorum.PHP array_push ile çokboyutlu diziye elemanlar ekle

$md_array= array (
    'recipe_type' => 
     array (
     18 => 
     array (
      'wpseo_title' => 'Salads', 
      'wpseo_desc' => 'Hundreads of recipes for Salads', 
      'wpseo_metakey' => '' 
     ), 
     19 => 
     array (
      'wpseo_title' => 'Main dishes', 
      'wpseo_desc' => 'Hundreads of recipes for Main dishes', 
      'wpseo_metakey' => '' 
     ) 
    ), 
    'cuisine' => 
     array (
     22 => 
     array (
      'wpseo_title' => 'Italian', 
      'wpseo_desc' => 'Secrets from Sicily in a click', 
      'wpseo_metakey' => '' 
     ), 
     23 => 
     array (
      'wpseo_title' => 'Chinese', 
      'wpseo_desc' => 'Oriental dishes were never this easy to make', 
      'wpseo_metakey' => '' 
     ), 
     24 => 
     array (
      'wpseo_title' => 'Greek', 
      'wpseo_desc' => 'Traditional Greek flavors in easy to make recipies', 
      'wpseo_metakey' => '' 
     ) 
    ) 
    ); 
: Aşağıdaki çok boyutlu diziye $ newData diziler eklemek gerekir array_push() kullanarak, daha sonra

$newdata = array (
      'wpseo_title' => 'test', 
      'wpseo_desc' => 'test', 
      'wpseo_metakey' => 'test' 
     ); 

ve: döngüde

, ben her satır için yeni bir tablo $ newData oluşturmak

array_push ile recipe_type dizisine yeni bir öğe (dizi) eklemek için sözdizimi nedir? Kafamı çok boyutlu dizilerden asla alamadım ve biraz kafam karıştı. Eğer şunları yapabilirsiniz ilişkisel dizi içindeki artım için verileri eklemek istiyorsanız

array_push($md_array['recipe_type'], $newdata); 

cevap

54

: bir giriş başka dizidir çok boyutlu dizide olduğu gibi

+0

gibi kullanabilirsiniz bir soru: önce, ben veritabanına yeni bir satır ekliyorum array_push ve bu satır ile bağlı olması gerektiğini dizi öğesinin kimliği. Yani, $ id = mysql_insert_id() 'o zaman ben $ md_array [" recipe_type "] [$ id] = $ newdata' diyorum, doğru mu? – bikey77

11

, array_push o değerin indeksini belirlemek Bunu yapmak için, son indeksin ne olduğuna bağlı olarak yemek tarifi veya yemeklere eklenecektir.

Ardışık dizininiz olduğunda dizi basma genellikle dizide kullanılır: $ arr [0], $ ar [1] .. doğrudan ilişkilendirici dizide kullanamazsınız. senin alt dizi indeksi bu tür vardı çünkü Ama hala İşte bu

array_push($md_array["cuisine"],$newdata);