php array_push() -> How not to push if the array already contains the value
You check if it's there, using in_array
, before pushing.
foreach($something as $value){
if(!in_array($value, $liste, true)){
array_push($liste, $value);
}
}
The ,true
enables "strict checking". This compares elements using ===
instead of ==
.
Two options really.
Option 1: Check for each item and don't push if the item is there. Basically what you're asking for:
foreach($something as $value) {
if( !in_array($value,$liste)) array_push($liste,$value);
}
Option 2: Add them anyway and strip duplicates after:
foreach($something as $value) {
array_push($liste,$value);
}
$liste = array_unique($liste);
By the look of it though, you may just be looking for $liste = array_unique($something);
.
As this question is using not the best practice code to begin with I find all the answers here to be over-complicated.
Solving code in question:
Basically what is tried to do in question itself is filtering out repetitions. Better approach:
$liste = array_unique($something);
If adding elements to an array that is not empty:
$liste = array_unique(array_merge($liste, $something));
If you are using array_push():
Unless you are actually using return value of array push you should really use:
$liste[] = $value;
for shorter syntax and minor performance increase