3

私はそのような数字の配列を持っています

$arr = range(01,10);

しかし、私は出力をしたいです

Array ( [0] => 01 [1] => 02 [2] => 03 ... [9] => 10)

どうすればそれができますか?

4

4 に答える 4

11

あなたはおそらく必要ですarray_map()

array_map(function($item) {
    return str_pad($item, 2, '0', STR_PAD_LEFT); 
}, $arr);

デモ

または、次を使用することsprintf()もできます。

return sprintf('%02d', $item);

アレイが大きい場合は、その場で交換を実行することをお勧めします。提案してくれたWaygoodに感謝します。

array_walk($arr, function(&$item) {
    $item = str_pad($item, 2, '0', STR_PAD_LEFT); 
});
于 2013-03-12T13:05:34.957 に答える
1
$arr = range(1,10);
$arr = array_map('pad', $arr);

function pad($input)
{
    return str_pad($input, 2, "0", STR_PAD_LEFT);
}

print_r($arr);

実際に見てください

于 2013-03-12T13:06:13.400 に答える
0

str_padオプションを確認してください。これを使用して、出力に先行ゼロを追加できます。

foreach($arr as $key=>$val) {
  $arr[$key] = str_pad($val, 2, '0', STR_PAD_LEFT);
}

var_dump($arr);
于 2013-03-12T13:06:35.663 に答える
0

参照付きのforeachループの使用:

$arr = range(1,10);
foreach($arr as &$val) {
    $val = str_pad($val, 2, '0', STR_PAD_LEFT);
}

var_dump($arr);
于 2013-03-12T13:08:32.767 に答える