2016-05-17 7 views
6

मैं सरणी 1:PHP में सरणी मानों में कैसे शामिल हों?

Array 
(
    [0] => Array 
     (
      [recomendation_id] => 3588 
      [employee_id] => 90141063 
      [attendance_type_id] => 2 
      [start_dtm] => 2016-05-17 10:32:00 
      [end_dtm] => 
      [request_message] => test notif 
      [recomendation_status_id] => 1 
      [last_update_dtm] => 2016-05-17 10:32:43 
      [employee_name] => Nike Yulistia Angreni 
      [attd_type_name] => Permittance 
      [status_name] => Request 
     ) 

) 

और सरणी 2:

Array 
(
    [0] => Array 
     (
      [valuator1] => Wulan Lastia Permana 
     ) 
) 

मैं एक सरणी में सरणी मूल्यों बनाना चाहते हैं। मुझे इस तरह का परिणाम चाहिए:

Array 
(
    [0] => Array 
     (
      [recomendation_id] => 3588 
      [employee_id] => 90141063 
      [attendance_type_id] => 2 
      [start_dtm] => 2016-05-17 10:32:00 
      [end_dtm] => 
      [request_message] => test notif 
      [recomendation_status_id] => 1 
      [last_update_dtm] => 2016-05-17 10:32:43 
      [employee_name] => Nike Yulistia Angreni 
      [attd_type_name] => Permittance 
      [status_name] => Request 
      [valuator1] => Wulan Lastia Permana 
     ) 
) 

क्या इस तरह शामिल होना संभव है?

उत्तर

9

आप का उपयोग करने के array_replace_recursive:

<?php 

$arr1 = Array 
(
    Array 
     (
      "recomendation_id" => 3588, 
      "employee_id" => 90141063, 
      "attendance_type_id" => 2, 
      "start_dtm" => "2016-05-17 10:32:00", 
      "end_dtm" => "", 
      "request_message" => "test notif", 
      "recomendation_status_id" => 1, 
      "last_update_dtm" => "2016-05-17 10:32:43", 
      "employee_name" => "Nike Yulistia Angreni", 
      "attd_type_name" => "Permittance", 
      "status_name" => "Request" 
     ) 

); 
$arr2 = Array 
(
    Array 
     (
      "valuator1" => "Wulan Lastia Permana" 
     ) 
); 

print_r(array_replace_recursive($arr1,$arr2)); 

परिणाम:

Array 
(
    [0] => Array 
     (
      [recomendation_id] => 3588 
      [employee_id] => 90141063 
      [attendance_type_id] => 2 
      [start_dtm] => 2016-05-17 10:32:00 
      [end_dtm] => 
      [request_message] => test notif 
      [recomendation_status_id] => 1 
      [last_update_dtm] => 2016-05-17 10:32:43 
      [employee_name] => Nike Yulistia Angreni 
      [attd_type_name] => Permittance 
      [status_name] => Request 
      [valuator1] => Wulan Lastia Permana 
     ) 

) 

आपका Eval


आप array_merge_recursive उपयोग करते हैं, अपने output हो जाएगा:

Array 
(
    [0] => Array 
     (
      [recomendation_id] => 3588 
      [employee_id] => 90141063 
      [attendance_type_id] => 2 
      [start_dtm] => 2016-05-17 10:32:00 
      [end_dtm] => 
      [request_message] => test notif 
      [recomendation_status_id] => 1 
      [last_update_dtm] => 2016-05-17 10:32:43 
      [employee_name] => Nike Yulistia Angreni 
      [attd_type_name] => Permittance 
      [status_name] => Request 
     ) 

    [1] => Array 
     (
      [valuator1] => Wulan Lastia Permana 
     ) 

) 
+0

दिलचस्प। मुझे इन कार्यों को नहीं पता था। 'Array_replace_recursive' पुराने मानों को ओवरराइट नहीं करेगा? या क्या यह नए मान भी जोड़ सकता है? – Peter

+0

बहुत बहुत धन्यवाद! यह पूरी तरह से काम करता है –

+0

@ पीटर 'array_replace_recursive' पुराने मानों को प्रतिस्थापित करेगा – Thamilan

2

आप array_merge_recursive समारोह का उपयोग कर सकते

$result = array_merge_recursive($array1, $array2); 
+3

उपरोक्त का उत्पादन अपेक्षा से अलग है। – Ali

+0

'array_merge_recursive' मान को एक अलग सबएरे में जोड़ देगा। – Peter

0

हाँ, यह संभव है। अपनी पहली सरणी $arr1 और दूसरी सरणी $arr2 है।

बस अपनी पहली सरणी में एक नया फ़ील्ड असाइन करें, आपकी पहली सरणी दूसरी सरणी key, value pair के साथ अपडेट की जाएगी।

$arr1[0]['valuator1'] = $arr2[0]['valuator1']; 

print_r($arr1); 

परिणाम:

Array 
(
    [0] => Array 
     (
      [recomendation_id] => 3588 
      [employee_id] => 90141063 
      [attendance_type_id] => 2 
      [start_dtm] => 2016-05-17 10:32:00 
      [end_dtm] => 
      [request_message] => test notif 
      [recomendation_status_id] => 1 
      [last_update_dtm] => 2016-05-17 10:32:43 
      [employee_name] => Nike Yulistia Angreni 
      [attd_type_name] => Permittance 
      [status_name] => Request 
      [valuator1] => Wulan Lastia Permana 
     ) 

) 
0

यह मेरी राय में सबसे अच्छा विकल्प नहीं है लेकिन यह अभी भी अपने मुद्दे से निपटने होगा।

foreach ($arr2 as $k => $v) { 
    $arr1[$key] = array_merge($arr1[$key], $v); 
} 

यह दूसरी सरणी के माध्यम से लूप करेगा और प्रत्येक मान को पहले सरणी के साथ मर्ज करेगा।

नोट: काम करने के लिए दोनों सरणी में आपकी सरणी कुंजी समान होनी चाहिए।

संबंधित मुद्दे