2012-03-24 17 views
7

मैं this पीएचपी टुकड़ा है:Php: सभी सरणी आइटम में जुटना स्ट्रिंग

<?php 
    $colors = array('red','green','blue'); 
    foreach ($colors as &$item) 
    { 
    $item = 'color-'.$item; 
    } 
    print_r($colors); 
?> 

आउटपुट:

Array 
(
    [0] => car-red 
    [1] => car-green 
    [2] => car-blue 
) 

यह सरल समाधान है?

(कुछ सरणी php फ़ंक्शन जैसे array_insert_before_all_items($ colors,"car-"))?

धन्यवाद

उत्तर

12

विधि array_walk आपको कॉलबैक के साथ सरणी में प्रत्येक आइटम को 'जाने' देगा।

function carPrefix(&$value,$key) { 
    $value="car-$value"; 
} 
array_walk($colors,"carPrefix"); 
print_r($colors); 

नई गुमनाम समारोह संस्करण: php 5.3 के साथ आप भी anonymous functions

पूर्व पीएचपी 5.3 संस्करण का उपयोग कर सकते हैं

array_walk($colors, function (&$value, $key) { 
    $value="car-$value"; 
}); 
print_r($colors); 
1

इस प्रयास करें:

$colors = array('red','green','blue'); 

function prefix_car(&$item) { 
    $item = "car-{$item}"; 
} 

array_walk($colors, 'prefix_car'); 

यह कुछ हद तक अधिक कड़ाई से हालांकि, आप इसे कर रहे हैं उसी तरह काम करना चाहिए; array_walk मैन्युअल रूप से लूपिंग की तुलना में अधिक लचीलापन देता है।

0
$colors = array('red','green','blue'); 

$prefix = "car-"; 

$color_flat = $prefix . implode("::" . $prefix,$colors); 

$colors = explode("::",$color_flat); 

print_r($colors); 
2

php के पुराने संस्करणों के लिए यह काम करना चाहिए

foreach ($colors as $key => $value) { 
$colors[$key] = 'car-'.$value; //concatinate your existing array with new one 
} 
print_r($sbosId); 

परिणाम:

Array 
(
[0] => car-red 
[1] => car-green 
[2] => car-blue 
) 
0

array_map का उपयोग कर वैकल्पिक उदाहरण: http://php.net/manual/en/function.array-map.php

पीएचपी:

$colors = array('red','green','blue'); 

$result = array_map(function($color) { 
    return "color-$color"; 
}, $colors); 

आउटपुट ($result):

array(
    'color-red', 
    'color-green', 
    'color-blue' 
) 
संबंधित मुद्दे