2012-08-14 74 views
3

我的代码:有没有任何PHP函数用字符串值填充数组?

$a = array_fill(5, 6, 'banana'); 

打印

Array 
(
    [5] => banana 
    [6] => banana 
    [7] => banana 
    [8] => banana 
    [9] => banana 
    [10] => banana 
) 

但我想它类似下面

Array 
(
    [5] => banana 1 
    [6] => banana 2 
    [7] => banana 3 
    [8] => banana 4 
    [9] => banana 5 
    [10] => banana 6 
) 

是否有任何其他PHP函数存在上述实现?如果是的话,可否请让我知道。

+3

你为什么不这样做你自己,这是很容易的实际 – 2012-08-14 15:55:10

+1

使用foreach循环及其RLY容易:?d – 2012-08-14 15:56:52

+0

我知道如何产生高于使用/的foreach/while循环,但我认为可能有什么东西来增加数字与字符串值,所以问题。 – user1421214 2012-08-14 15:58:08

回答

2
function test_print_value($item2, $key, $some_value) 
{ 
    echo $some_value." $item2<br />\n"; 
} 

array_walk(range(0,10), 'test_print_value', 'Banana Apple '); 

输出:

Banana Apple 0 
Banana Apple 1 
Banana Apple 2 
Banana Apple 3 
Banana Apple 4 
Banana Apple 5 
Banana Apple 6 
Banana Apple 7 
Banana Apple 8 
Banana Apple 9 
Banana Apple 10 
2

不开箱的,但你可以自己随便写吧:

<?php 
function custom_array_fill($start_index, $num, $value) { 
    $result = array(); 
    for($i = 1; $i < $num + 1; $i++) { 
     $result[$start_index + $i - 1] = $value . " " . $i; 
    } 
    return $result; 
} 
+0

OP已经知道这一点。 – 2012-08-14 15:59:31

+0

@ shiplu.mokadd.im在发布我的答案后添加了该评论。我不是通灵。 – WouterH 2012-08-14 16:02:32

+0

哎呀。道歉。但我认为你可以编辑你的答案来反映这些信息 – 2012-08-14 16:04:47

0
function myFillArray($index,$size,$value){ 
    $array = array(); 
    for($i = 0; $i < $size; $i++){ 
     $array[$index + $i] = $value." ".$i;   
    } 
    return $array; 
} 
1

也许你可以用array_walk函数?

$a = array_fill(5, 6, 'banana'); 
array_walk($a, function(&$item, $key) { 
    $item = sprintf('%s %d', $item, ($key-4));//subtract 4 from key to get 'banana 1' 
}); 

只是不要忘记通过$项目作为参考(与&字符)。否则,你将不会修改你的数组。