これらの配列が欲しい...
array('bread','jelly','olive');
array('chocolate','chip');
これらの配列になるには...
array('bread','bread','jelly','jelly','olive','olive');
array('chocolate','chocolate','chip','chip');
これを行う簡単な方法はありますか?
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'));
$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"
}
array_splice()を使用します。並べ替えが含まれないため、非常に高速に動作します。
$a = array('bread','jelly','olive');
$i=0;
foreach ($a as $b) {
array_splice($a,$i*2,0,$b);
$i++;
}
あなたができること:
$singleValues = array('bread','jelly','olive');
$newArray = array();
foreach ($singleValues as $value) {
$newArray[] = $value;
$newArray[] = $value;
}
これが機能する場合:array('bread'、'jelly'、'olive'、bread'、' jelly'、''olive');
$array = array('bread','jelly','olive');
$array = array_merge($array, $array);
次に、アルファベット順に並べ替えることができます。
sort($array);