1

これらの配列が欲しい...

array('bread','jelly','olive');
array('chocolate','chip');

これらの配列になるには...

array('bread','bread','jelly','jelly','olive','olive');
array('chocolate','chocolate','chip','chip');

これを行う簡単な方法はありますか?

4

5 に答える 5

2
function duplicateItems(array $inputArray, $n = 2) {
    $result = array();
    foreach ($inputArray as $value) {
        for ($i = 0; $i < $n; $i++) {
            $result[] = $value;
        }
    }
    return $result;
}

使用法:

$duplicateArray = duplicateItems(array('bread', 'jelly', 'olive'));
于 2013-01-08T18:53:51.960 に答える
2
$myarray = array('bread','jelly','olive');
$mynewarray = array_merge($myarray, $myarray);
sort($mynewarray);
var_dump($mynewarray);

出力:

array(6) {
  [0]=>
  string(5) "bread"
  [1]=>
  string(5) "bread"
  [2]=>
  string(5) "jelly"
  [3]=>
  string(5) "jelly"
  [4]=>
  string(5) "olive"
  [5]=>
  string(5) "olive"
}
于 2013-01-08T18:55:10.710 に答える
1

array_splice()を使用します。並べ替えが含まれないため、非常に高速に動作します。

$a = array('bread','jelly','olive');
$i=0;
foreach ($a as $b) {
    array_splice($a,$i*2,0,$b);
    $i++;
}
于 2013-01-08T19:05:26.083 に答える
0

あなたができること:

$singleValues = array('bread','jelly','olive');
$newArray = array();
foreach ($singleValues as $value) {
   $newArray[] = $value;
   $newArray[] = $value;
}
于 2013-01-08T18:53:58.427 に答える
0

これが機能する場合:array('bread'、'jelly'、'olive'、bread'、' jelly'、''olive');

 $array = array('bread','jelly','olive');
 $array = array_merge($array, $array);

次に、アルファベット順に並べ替えることができます。

 sort($array);
于 2013-01-08T18:55:59.107 に答える