2013-05-23 6 views
55

मैं PHP में एक नौसिखिया हूँ और मैं निम्नलिखित समस्या के लिए एक त्वरित समाधान की जरूरत है, लेकिन नहीं कर पा रहे एक साथ आने के लिए:फटना डेटा

मैं एक बहु-आयामी सरणी है जैसे इतना

Array 
(
    [0] => Array 
     (
      [blogTags_id] => 1 
      [tag_name] => google 
      [inserted_on] => 2013-05-22 09:51:34 
      [inserted_by] => 2 
     ) 

    [1] => Array 
     (
      [blogTags_id] => 2 
      [tag_name] => technology 
      [inserted_on] => 2013-05-22 09:51:34 
      [inserted_by] => 2 
     ) 
) 

मैं implode() उपयोग करने के लिए किसी भी तरह तो जैसे tag_name कुंजी की अल्पविराम से अलग की स्ट्रिंग वाली मान करना चाहते हैं।

google, technology 

क्या यह प्रभाव उस समारोह के साथ प्राप्त करना संभव है? यदि नहीं तो कृपया एक वैकल्पिक समाधान का सुझाव दें।

उत्तर

119

काफी सरल:

$input = array(
    array(
    'tag_name' => 'google' 
), 
    array(
    'tag_name' => 'technology' 
) 
); 

echo implode(', ', array_map(function ($entry) { 
    return $entry['tag_name']; 
}, $input)); 

http://3v4l.org/ltBZ0


और php v5.5.0 में नए, array_column:

echo implode(', ', array_column($input, 'tag_name')); 
+4

ध्यान दें कि बंद केवल PHP 5.3 या इससे ऊपर के साथ समर्थित हैं। –

+1

> = 5.5.0 के लिए समाधान सही है! –

+0

> 5.5 से दूर चलना ... :) –

8
join(',', array_map(function (array $tag) { return $tag['tag_name']; }, $array)) 
8

array_map कॉल बैक समारोह, जहां है आप पास सरणी के साथ खेल सकते हैं। यह काम करना चाहिए।

$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr)); 
4

इस

$str; 
foreach ($arrays as $arr) { 
$str .= $arr["tag_name"] . ","; 
} 
$str = trim($str, ',');//removes the final comma 
1

के लिए बहुत ही सरल जाने आप जुड़े "blogTags_id" उपयोग के साथ "TAG_NAME" चाहते हैं: (PHP> 5,5)

$blogDatas = array_column($your_multi_dim_array, 'tag_name', 'blogTags_id'); 
echo implode(', ', array_map(function ($k, $v) { return "$k: $v"; }, array_keys($blogDatas), array_values($blogDatas))); 
2

हालांकि इस सवाल से संबंधित है स्ट्रिंग रूपांतरण, मैं अपनी लॉग फ़ाइलों में सरणी लिखने का एक आसान तरीका चाहते हुए इस पर ठोकर खाई। तुम सिर्फ जानकारी चाहते हैं, और एक स्ट्रिंग की सही सफाई के बारे में परवाह नहीं है, तो आप सोच सकते हैं:

json_encode($array) 
0

इस स्थिति फटना में ($ सरणी, ','); काम करेगा, क्योंकि आप केवल मूल्य चाहते हैं। PHP 5.6 में मेरे लिए काम कर रहा है।

आप की तरह एक में कुंजी और मूल्यों फटना करना चाहते हैं:
blogTags_id: 1
TAG_NAME: गूगल

$toImplode=array(); 
foreach($array as $key => $value) { 
$toImplode[]= "$key: $value".'<br>'; 
} 
$imploded=implode('',$toImplode); 

क्षमा करें, मैं गलत समझते हैं, क्योंकि शीर्षक "एक बहु से डेटा फटना -डिमेंशनल सरणी "। खैर, मेरा जवाब अभी भी इसका उत्तर देता है, किसी की मदद कर सकता है, इसलिए इसे हटा नहीं पाएगा।

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