<?php
function hasColor(Array $a,$color){
foreach($a as $k=>$v){
if($v['color']===$color){
return true;
}
}
return false;
}
function checkColors(Array &$a){
foreach($a as $k=>&$v){
switch($v['color']){
case 'blue':
$appendColor = 'pink';
break;
case 'green':
$appendColor = 'blue';
break;
case 'pink':
$appendColor = 'green';
break;
}
if(hasColor($a,$appendColor)){
continue;
}
$a[] = ['color'=>$appendColor];
return checkColors($a);
}
}
$colors = [
[
'color'=>'blue'
]
];
checkColors($colors);
var_dump($colors);
- Output for 7.0.0 - 7.0.25, 7.1.0 - 7.1.20, 7.2.6 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.31, 8.2.0 - 8.2.27, 8.3.0 - 8.3.16, 8.4.1 - 8.4.3
- array(3) {
[0]=>
array(1) {
["color"]=>
string(4) "blue"
}
[1]=>
array(1) {
["color"]=>
string(4) "pink"
}
[2]=>
array(1) {
["color"]=>
string(5) "green"
}
}
preferences:
142.93 ms | 408 KiB | 5 Q