PHP

2012-11-13 7 views
9

में एक एकल सहयोगी सरणी में 3 सरणी कैसे विलय कर सकते हैं मेरे पास 3 सरणी हैं, उनमें से केवल 7 तत्व हैं। सरणी हैं:PHP

filename[]

title[]

description[]

मैं व्यक्त करने और इसके बाद के संस्करण सरणियों में डेटा के प्रत्येक के लिए एक एकल साहचर्य सरणी के माध्यम से पुनरावृति करना चाहते हैं। filename assoc सरणी के लिए मुख्य मान हो सकता है, लेकिन प्रत्येक फ़ाइल नाम का अपना संबंधित शीर्षक और विवरण होता है।

var_dump($filename) 
    string(10) "IMG_1676_3" [1]=> 
    string(10) "IMG_0539_3" [2]=> 
    string(8) "IMG_1942" [3]=> 
    string(8) "IMG_1782" [4]=> 
    string(8) "IMG_2114" [5]=> 
    string(8) "IMG_9759" [6]=> 
    string(8) "IMG_2210" } 

var_dump($title) 
    string(31) "Lighthouse at Ericeira Portugal" [1]=> 
    string(23) "Gaudi park in Barcelona" [2]=> 
    string(32) "Driving around outside of Lisbon" [3]=> 
    string(16) "Madeira Portugal" [4]=> 
    string(15) "Barcelona Spain" [5]=> 
    string(15) "Lisbon Portugal" [6]=> 
    string(14) "Sailing Lisbon" } 

उत्तर

6
function mergeArrays($filenames, $titles, $descriptions) { 
    $result = array(); 

    foreach ($filenames as $key=>$name) { 
     $result[] = array('filename' => $name, 'title' => $titles[$key], 'descriptions' => $descriptions[ $key ]); 
    } 

    return $result; 
} 

बस सुनिश्चित करें कि आप कार्य करने के लिए मान्य इनपुट गुजरती हैं, या कुछ अतिरिक्त जाँच जोड़ें:

नीचे का एक नमूना है। क्या आप यही खोज रहे हैं?

+0

मैं शीर्षक या अपने डेटा के विवरण की '$ रेस क्षेत्र कैसे कॉल कर सकते हैं ULT [0] '? – GivenPie

+0

'$ परिणाम [0] ['शीर्षक']' या '$ परिणाम [0] ['विवरण']' –

0

इस

$result = array_combine($filename, array_map(null, $title, $description)); 
var_dump($result); 

प्रयास करें या साहचर्य होने के लिए अगर आप भीतरी सरणी की जरूरत है।

$result = array_combine($filename, 
    array_map(function($t, $d) { 
     return array('title'=>$t, 'description'=>$d); 
    }, $title, $description 
) 
); 

आप सिर्फ तीन सरणियों

$result = array_map(function($f, $t, $d) { 
    return array('filename'=>$f, 'title'=>$t, 'description'=>$d); 
    }, $filename, $title, $description 
); 
4

गठबंधन करने के लिए यदि आप सरणी कुंजी सभी 3 सरणियों के लिए ही कर रहे हैं, तुम क्या कह रहे हैं करने के लिए बेहतर तरीका है, एक foreach पैदा कर रही है चाहते हैं एक ही कुंजी में सभी प्रमुख (फ़ाइल नाम, शीर्षक, वर्णन) के साथ एक नई सरणी:

<?php 
foreach($filename as $key => $file) 
{ 
    $files[$key]['filename'] = $file; 
    $files[$key]['title'] = $title[$key]; 
    $files[$key]['description'] = $description[$key]; 
} 
?> 
+0

मुझे वास्तव में आपका तर्क पसंद है, मुझे लगता है कि यह शीर्ष जवाब का हकदार है। – GivenPie

-1
$array1 = array("orange", "apple", "grape"); 
$array2 = array("peach", 88, "plumb"); 
$array3 = array("lemon", 342); 
$newArray = array_merge($array1, $array2, $array3); 
foreach ($newArray as $key => $value) { 
    echo "$key - <strong>$value</strong> <br />"; 
} 
+0

यह समाधान प्रश्न में आवश्यकता को पूरा नहीं करता है। – automatix

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

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