3

私のコード:

$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関数はありますか?はいの場合は、お知らせください。

4

4 に答える 4

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;
}
于 2012-08-14T15:56:35.023 に答える
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
于 2012-08-14T16:07:53.630 に答える
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'
});

$itemを参照として ( &文字で)渡すことを忘れないでください。そうしないと、配列を変更できません。

于 2012-08-14T15:58:37.237 に答える
0
function myFillArray($index,$size,$value){
    $array = array();
    for($i = 0; $i < $size; $i++){
        $array[$index + $i] = $value." ".$i;        
    }
    return $array;
}
于 2012-08-14T15:58:10.837 に答える